Hibernate不可变实体和脏检查机制REST Web应用程序

时间:2018-03-01 12:22:54

标签: java hibernate rest

这是我使用ORM时的第一个项目(本例中为Hibernate)。实际上我有不可变的实体,这是什么意思: 我直接将实体获取到DTO(使用查询/投影/元组)。 使用UPDATE子句将接收到的DTO映射到DB。所以通常Hibernate不管理任何实体。更新时的另一种方法是获取实体,然后使用setter和commit更改其参数。实际上,每个POST / UPDATE请求,执行SQL查询,是好还是坏的做法?我应该如何使用Hibernate?

1 个答案:

答案 0 :(得分:1)

这可以通过这种方式完成。但是你必须记住,hibernate加载的实体不是你的类,而是代理可能存在延迟加载问题 (例如,您必须确保在关闭该会话之前所有数据都已正确序列化)

有一些旧的阅读材料(但仍然如此):

http://www.mojavelinux.com/blog/archives/2006/06/hibernate_get_out_of_my_pojo/

使用直接发出的查询更新数据会比loadn提供更多的执行,然后保存更新的实体