本文介绍了关于“如何理解Hibernate对象的持久性”的知识。很多人在实际案例操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!
Hibernate对象持久类的新实例化对象是Transient。我们可以通过将一个瞬态对象与一个会话相关联来使其持久化。
DomesticCatfritz=new domesticcat();弗里茨.塞特Color(颜色。GINGER);fritz . setsex(' M ');Fritz . setname(' Fritz ');LonggeneratedId=(Long)sess . save(fritz);如果卡特彼勒的持久标识符属于生成类型,则该标识符将在调用save()时自动生成并分配给卡特彼勒。如果卡特彼勒的持久标识符是指定类型或复合键,则应在调用save()之前手动将该标识符提供给卡特彼勒。根据EJB3早期草案中定义的语义,还可以使用persist()代替save()。
此外,您可以使用重载版本的save()方法。
DomesticCatpk=new domesticcat();pk.setColor(颜色。TABBY);PK . setsex(' F ');PK . setname(' PK ');PK . setkites(newHashSet());PK . addkitten(fritz);sess.save(pk,NewLong(1234));如果您持久化的对象具有相关联的对象(例如上面示例中设置的小猫),那么这些对象(pk和小猫)的持久化顺序是任意的(也就是说,您可以先持久化小猫或者先持久化pk),除非您在外键列上有NOT NULL约束。Hibernate不会违反外键约束,但是如果您以错误的顺序保存对象,您可能会违反NOT NULL约束。
通常,您不会担心这些细节,因为您可能会使用Hibernate对象的传递性持久性功能来自动保存关联的对象。这样就不会违反NOT NULL约束——Hibernate会处理一切。
这里介绍一下“如何理解Hibernate对象的持久性”的内容。感谢您的阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/134022.html