在我正在处理的一个应用程序中,我发现修改后的JPA对象不会被预先加载,我的意思是;
而不是这样:
getEntityManager().find(Enterprise.class, idEnterprise);
//Some modifying operations
他们喜欢这样(并且有效!):
Enterprise obj = new Enterprise (IdEnterprise);
//Some modifying operations
getEntityManager().persist(obj);
最后一个解决方案不会从数据库加载对象,它会正确修改对象。
由于
答案 0 :(得分:0)
这取决于。如果你是从控制器类(或任何应用程序代码)编写代码,你不应该担心jpa的东西,所以第二种方法是坏的和多余的。
如果您正在使用基础架构代码,也许您可以手动持久保存实体以启用某些性能优化,或者仅仅因为即使事务失败也希望数据保持不变。
我强烈怀疑第二位代码是从头开始创建实体的人,但是在同一方法中混合应用程序,域和基础架构代码:这是一种非常邪恶的做法。 (非常邪恶,darth父亲邪恶,永远不会那样做)