Hibernate学习
单主键、没有外键的Hibernate配置实例
<property name=“desc” type="string"column=“NC_DESC”>
单主键、有外键的Hibernate配置实例
<many-to-one name=”customerCode”
class=”com.pms.bean.base.CustomerBean” outer-join=”ture”
not-null=”true” lazy=”false”>
双主键、没有外键的Hibernate配置实例
双主键、有外键的Hibernate配置实例
<key-property name=“deptDialogBean” column="NCD_DeptID "
lazy=“false”>
<many-to-one name=”badType” class=”com.pms.bean.base.BadTypeBean”
outer-join=”ture”
not-null=”true” lazy=”false”>
双主键中的两个主键都被作为外键被调用的Hibernate配置实例
详细举例讲解:例如工厂和生产调度员组合成双主键,现在有一个表里面有两个外键分
别是工厂和生产调度员。
<property name=“werks” type=“string” column=“MA_WERKS” length=“4”
insert=“false” update=“false”/>
<many-to-one name=“dispatcherBean”
class=“com.pms.bean.base.prd.DispatcherBean”
outer-join=“true” not-null=“true” lazy=“false”>
hibernate里面设置id自动增加避免并发后果
PLSql增加如下代码:
create sequence SEQ_tbSChecking start with 100000 increment by 1
minvalue 1 nomaxvalue nocache nocycle noorder;
(hibernate)xml文件中更改为:
SEQ_tbSChecking@注解和XML 主键生成策略
@注解配置:
@Id //表示该列为主键
@GeneratedValue(strategy=GenerationType.AUTO) //主键类型,auto为自动增长
private Integer id;
1、GenerationType.AUTO 自动增长,根据底层数据库自动选择。
数据库支持自动增长类型,则为自动增长。
2、GenerationType.TABLE 使用指定的表来决定主键的取值,结合@TableGeneraors 使用。
@Id //表示该列为主键
@TableGeneraors(name=“tb_cat_gen”,allocationSize=1)
@GeneratedValue(strategy=GenerationType.AUTO) //主键类型,auto为自动增长
private Integer id;
3、GenerationType.SEQYEBCE 使用Sequence 来决定主键的取值,适合Oracle、DB2 等支
持Sequence 的数据库,一般结合@SequenceGenerator。
@Id //表示该列为主键
@SequenceGenerator(name=“tb_cat_gen”,allocationSize=1)
@GeneratedValue(strategy=GenerationType.AUTO) //主键类型,auto为自动增长
private Integer id;
注意:oracle 没有自动增长类型,只能使用Sequence
4、GenerationType.IDENTITY 支持DB2、mySQL、MS SQL Server、Sybase 与
HyperaonicSQL 数据库的identit 类型主键。
XML 配置: