在更新之前选择休眠

时间:2013-04-30 15:35:30

标签: java hibernate entity-relationship

在我的工作中,我使用带有exidirect的spring,在服务器端使用hibernate,在客户端使用extjs。当我发布表单时,在服务器端spring将其转换为实体。 实体有一个id字段,它假定更新操作。 我正在调用服务保存方法,但是一个sql 更新查询我得到了许多选择查询,然后才更新。这需要很长时间。并且不需要这种操作。 我正在寻找类似的问题,并尝试使用 persist 方法。 这种情况我得到错误:传递给持久化的分离实体。

我没有足够的hibernate经验。可能是我需要配置相关实体​​(OneToMany,ManyToOne和级联类型)。实体由Spring roo工具生成。

有什么建议吗? 谢谢。

2 个答案:

答案 0 :(得分:6)

这不是您问题的最终答案,但我希望它可以作为高级指南。

使用Spring创建实体时,该实体已分离,Hibernate执行这些SELECT语句,因为它需要在持久化之前附加您的实体。另外,据我所知,任何附加实体的尝试都会触发SELECT语句。因此,我坚信如果没有这些SELECT语句,没有任何方法可以保存/持久化您的分离实体(我可能在这里错了)。

如果您担心性能问题,可以尝试在应用程序中添加一些缓存功能。此外,您还可以仅为遭受性能影响的操作包含JDBC解决方案。

答案 1 :(得分:0)

将@SelectBeforeUpdate(false)注释添加到实体。