hibernate学习(一)

来源:互联网 发布:2018上海人工智能展会 编辑:程序博客网 时间:2024/04/27 18:49

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

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对象。

 

原创粉丝点击