hibernate学习(一)

本文介绍了Hibernate中多种主键生成策略,包括increment、identity、hilo、uuid及sequence,并探讨了不同策略的适用场景。此外,还讨论了Hibernate中set属性的cascade级联操作,包括save-update、delete及all-delete-orphan等选项。

本文全部是自己理解所写,也为自己在将来工作中使用,如果那个大侠发现有错误的地方,麻烦帮助指正!谢谢!

hibernate可以配置多个数据库连接。通过配置多个hibernate的配置文件。使用

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();//调用默认的配置文件

SessionFactory sessionFactory = new Configuration().configure("new.cfg.xml").buildSessionFactory();//调用新的数据库的配置文件

 

主键生成器:

<generator class="指定生成器"></generator>

increment :从数据库中查询最大的id,取出id的值将id+1作为下次数据保存的id,此生成器不适合集群使用

identity:自己测试发现生成的id与increment没有什么区别

hilo:需要数据库对应相应的表来存储下一个主键,如hibernate配置文件中配置

<generator class="hilo">
    <param name="table">hi_value</param> //存储的表
    <param name="column">next_value</param>//下个id值的存储字段
    <param name="max_lo">100</param>//间隔数
   </generator>

如果得到的第一个id是1,那么下个id就是101

uuid:一定要注意是小写的,并且id的类型修改为String ,uuid将得到一个32位的16进制码

identity:对于支持标识的数据库使用( DB2,MYSQL等)

sequence:对于支持序列的数据库使用(ORACLE等),前提数据库中必须创建sequence,

<generator class="sequence">
    <param name="sequence">序列名称</param> //存储的表
   </generator>

 

 

Set属性:

  cascade属性:

      save-update  :  级联更新,假设存在Custumer和Order两个类,custumer->order  当更新custumer类时自动更新order类。

      delete:级联删除,当删除当前对象时会级联删除与之关联的所有对象。慎用!

       all-delete-orphan:该属性包含了save-update和delete两种属性,当对象保存时级联保存所有相关联的对象,当删除当前对象      时    级联删除所有关联的对象。

 

inverse:当此属性为true的时候,相当于order是custumer的镜像,也就是说当更新custumer不会更新order对象,更新order时也不会级联更新custumer对象。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值