Hibernate学习

it2022-05-05  160

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 配置:


最新回复(0)