我正在使用带有基于注释的配置的hibernate-5的spring-4。 在我的应用程序中,我有一个dao函数,它将通过sessionorupdate()保存/更新会话对象。 从服务层我调用dao函数两次:1)插入一个新对象和2)更新同一个对象与一些属性更改一次。 我的服务功能在@Transactional。
问题: 我能够第一次插入,但之后它不会更新相同的对象。 但是如果我在dao方法中使用@Transactional(但是它的方法不正确),它会更新。我给出了一个示例示例(与我的实际代码相同),如下所示。
@Service
public class TransactionService{
public boolean calculate(){
Object obj = new Object
insertOrUpdate(obj);
obj.setNewProperty();
insertOrUpdate(obj);
}
@Transactional
public void insertOrUpdate(Object obj){
dao.saveOrUpdate(obj);
}
}
你可以帮我解决这个问题。
谢谢,