这是我使用ORM时的第一个项目(本例中为Hibernate)。实际上我有不可变的实体,这是什么意思: 我直接将实体获取到DTO(使用查询/投影/元组)。 使用UPDATE子句将接收到的DTO映射到DB。所以通常Hibernate不管理任何实体。更新时的另一种方法是获取实体,然后使用setter和commit更改其参数。实际上,每个POST / UPDATE请求,执行SQL查询,是好还是坏的做法?我应该如何使用Hibernate?
答案 0 :(得分:1)
这可以通过这种方式完成。但是你必须记住,hibernate加载的实体不是你的类,而是代理可能存在延迟加载问题 (例如,您必须确保在关闭该会话之前所有数据都已正确序列化)
有一些旧的阅读材料(但仍然如此):
http://www.mojavelinux.com/blog/archives/2006/06/hibernate_get_out_of_my_pojo/
使用直接发出的查询更新数据会比loadn提供更多的执行,然后保存更新的实体