Hibernate小记 - lirunjie1124的日志 - 网易博客

来源:百度文库 编辑:神马文学网 时间:2024/05/01 13:22:33

User user=new User();  //User 为Hibernate 映射类,User中关联Orders表,User 与Order为一对多关系

 Hibernate.initialize(user);  //当.hbm映射文件中设置延迟加载的时候用来 初始化关联类

 Hibernate.initialize(user.getOrders()) 初始化 user并加在关联类,user.getOrders()返回Set集合

lazy="true //开启延迟加载

select-before-update="true"  //放入

unsaved-value=0 //设置 id的默认值,用于区别对象为临时对象或游离对象

 "from User user where lower(user.name)='lirunjie'" //将数据库中字符串转为小写在比对

 "from User user where upper(user.name)='lirunjie'" //将数据库中字符转为大写在比对

 "from User user where upper(user.name) in('Tom','lirunjie','lixiaojie')" //检索姓名可能是 tom 或lirunjie 或lixiaojie的对象

 "from User user where between 18 and 25" //检索年龄在18 到 25岁之间的

 "from User user where not between 18 and 25" //检索年龄不在18 到 25岁之间的

Query query=session.createQuery("from user c feft join fetch c.orders o")  //使用连接查询,查询出主表与关联表

值得注意的是 query 检索出来的集合最好用 HashSet接HashSet set=new HashSet(list);不然会有重复数据

Query q=s.createSQLQuery("select {c.*} from User as c").addEntity("c", user.getClass()); //SQL方式查询

e name="User"   多对一,一对应的类名
        column="userId"           外键
        class="moisten.hibernate.User"   对应类的包
        cascade="save-update"      开启关联保存、更新
  not-null="true"
        />

 

  一对多 多的类名

         database表外键名
       e-to-many class="moisten.hibernate.Orders"/>  包名
      

 

hibernate 缓存的三大作用 :

1.减少数据库的访问频率,提高数据访问性能。

2.保证数据库中的数据与缓存中的对象保持同步。

3.当缓存中的持久化对象之间存在循环关联是,session保证不出现访问对象的死循环。