Q
休眠和身份证
1
A
回答
1
您可以使用'assigned'作为Id生成策略,但是在将其保存到数据库之前,必须先为该实体提供其id。或者,您可以构建自己的org.hibernate.id.IdentifierGenerator实现,以您所建议的方式提供Id。
虽然我必须同意w/Cade Roux,并且这样做似乎比使用内置增量,uuid或其他形式的id代更困难。
1
我会避免这种情况,并简单地有一个关于对象的来源和外部标识符的列(假设外部标识符是一个重要的价值,你想跟踪)的信息的辅助列。
将列用于混合目的通常是一个坏主意 - 在这种情况下,从代理键的性质推断出对象的来源。
1
使用你喜欢的任何发生器,确保它可以从一个偏移量开始(当你使用一个序列时,你可以相应地初始化它)。
对于所有其他实体,请在插入它们之前调用setId()。如果id属性为0,Hibernate将只生成一个id。注意,你应该首先将带有id的对象插入到db中,然后使用它们。 Hibernate中有很多代码,当id!= 0时,预计该对象位于数据库中。
另一种解决方案是对带有id的实体使用负号。这也将确保在插入新对象时不会发生冲突。
相关问题
- 1. 休眠“身份”生成器
- 2. 春天MVC休眠形式登录页面,权限和身份验证问题
- 3. 春季安全数据库身份验证瓦特/休眠和哈希密码?
- 4. Spring Vault和休眠凭证
- 5. 休眠验证
- 6. 休眠验证器
- 7. 如何在我的Web应用中进行身份验证? JSF2 + Spring3 + GlassFish3 +休眠
- 8. Microsoft身份证与身份证DI
- 9. 是SQL Server身份验证和Windows身份验证
- 10. Ajax:HTTP基本身份验证和身份验证Cookie
- 11. 表单身份验证和身份验证票据Cookie域
- 12. Azure身份验证和OAuth身份验证
- 13. Google身份验证和Facebook身份验证
- 14. CakePHP 2.0身份验证和基本身份验证
- 15. RESTful端点的身份验证 - 基本身份验证和XHR
- 16. 多个身份验证方案和WWW身份验证挑战
- 17. 休眠验证和Spring 3.x
- 18. 休眠,MySQL视图和hibernate.hbm2ddl.auto =验证
- 19. glassfish和休眠
- 20. GWT和休眠
- 21. Struts2和休眠
- 22. 休眠和Flyweight
- 23. HTTPS和BASIC身份验证
- 24. GWT和身份验证
- 25. EmberFire身份验证和ToriiFirebaseAdapter
- 26. Cookie和身份验证-ASP.net
- 27. Flutter:Facebook和Google身份验证
- 28. DNN和Windows身份验证
- 29. Asp.net和Windows身份验证
- 30. R和Windows身份验证