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

问题描述 投票:0回答:1

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

java hibernate rest
1个回答
1
投票

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

有一些旧的阅读材料(但仍然是真的):

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

使用直接发出的查询更新数据将比加载然后保存更新的实体提供更多性能

© www.soinside.com 2019 - 2024. All rights reserved.