fla*_*ama 7 java merge spring hibernate persist
我的问题是分离的对象......
我目前正在使用Spring和Hibernate.
我有一个映射对象,主键作为字符串(我知道它很糟糕......但重构代码需要几个月),我希望坚持下去.(我用两个属性简化了对象)
@Id
private String id;
private String pattern;
Run Code Online (Sandbox Code Playgroud)
所以例如我想添加如下内容:
[ "ID": "myFirstPattern", "图案": "*"]
请注意我的主键已经设置好了.问题在于,每当我尝试持久化时,Hibernate将尝试将此对象与上下文中的任何对象(由于主键)链接,并且将无法执行此操作,因为没有.抛出分离的对象错误.
我做了一些研究并得出结论,merge()足以满足我的需求,因为即使对象不可用它也会持续存在并更新.但是我发现这是一个相当肮脏的解决方法,并想检查是否有任何其他解决方案来解决这个问题.
考虑到我们有一个Helper层,因此Services层不能直接与HibernateDao层一起使用.所以我可以通过添加'persist'和'update'方法来"屏蔽"它,这将调用相同的合并DAO方法.
谢谢,弗拉维奥.
您尝试过保存或更新吗?
Session sess = factory.openSession();
Transaction tx;
try {
tx = sess.beginTransaction();
session.saveOrUpdate( yourObjectHere );
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
sess.close();
}
Run Code Online (Sandbox Code Playgroud)