十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要讲解了“Hibernate有哪些使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate有哪些使用方法”吧!
目前创新互联已为上1000家的企业提供了网站建设、域名、雅安服务器托管、绵阳服务器托管、企业网站设计、都昌网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
Hibernate还是比较常用的,于是我研究了一下Hibernate基础,在这里拿出来和大家分享一下,希望对大家有用。
1.Hibernate基础——删除实体
Session接口提供了一个delete()方法:
Public void delete(Object object) throws HibernateException
这个方法以一个持久对象作为参数,参数也可以是一个具有标识符的瞬时对象,这个标识符设置为要删除的对象的id. 使用delete()方法时也可以使用级联.
Hibernate3还支持大批量删除.应用程序对数据库执行一个DELETE HQL语句.
session.creatQuery(“”delete from user”).executeUpdate();
这非常适合同时删除多个对象,因为不需要仅为了删除对象而将每个对象加进内存.用这种方法不会导致级联操作.
2.Hibernate基础——级联
在默认情况下,Hibernate不进行任何级联操作.在配置中,级联的值可以用逗号分隔.如: cascade=”all,delete-orphan”.
◆all : 所有情况下均进行关联操作。
◆none: 所有情况下均不进行关联操作。这是默认值。
◆save-update: 在执行save/update/saveOrUpdate时进行关联操作。
◆delete: 在执行delete时进行关联操作。
all的意思是save-update + delete
还有一种级联类型是delete-orphan, 如果使用delete-orphan,那么从父对象的集合中删除子对象时,就从数据库中删除子对象.这种级联类型只适用于一对多关联.all级联类型不包含delete-orphan,必须使用”all, delete-orphan”.
在添加delete-orphan级联类型后,只需从父对象的集合中删除子对象.Hibernate会自动地从数据库中删除子对象,不需要执行其他调用,下面的示例是从集合中删除一个子对象:
Supplier.getProducts().remove(product);
3.Hibernate基础——延迟加载
在使用XML映射时默认启用延迟加载,但是在使用注解时默认不启用.在Hibernate3中,默认情况下,类(包括Set和Map等集合)应该延迟加载.如果使用延迟加载,一个实体的关联实体只在它们被直接请求时加载.
Hibernate只能通过会话访问数据库,如果试图访问还没有加载的关联,但是实体是分离的,那么Hibernate会抛出一个异常:LazyInitializationException.
解决方法:
◆让实体再次进入持久状态.
◆在实体脱离会话之前访问所需的所有字段
4.Hibernate基础——查询对象
◆Criteria Query API是一个Java API.
◆HQL是一种面向对象的查询语言.
5.Hibernate基础——主键
如果表已经创建了,但是没有主键,Hibernate就要求指定一个主键.但是在使用Hibernate时,应该尽可能使用指定了主键的表.
6.Hibernate类型
Hibernate类型分为三大类型:实体,组件,值。实体: 是一个使用
感谢各位的阅读,以上就是“Hibernate有哪些使用方法”的内容了,经过本文的学习后,相信大家对Hibernate有哪些使用方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!