我的问题是与分离的对象...
我目前正在使用 Spring 和 Hibernate。
我有一个映射对象,它的主键为字符串(我知道这很糟糕......但重构代码需要几个月的时间),我希望坚持下去。(我只用两个属性简化了对象)
@Id
private String id;
private String pattern;
因此,例如,我想添加如下内容:
["id":"myFirstPattern","pattern":".*"]
请注意,我的主键已经设置。这样做的问题是,每当我尝试坚持时,Hibernate 都会尝试将此对象与上下文中的任何对象链接(因为主键)并且不会这样做,因为没有。抛出一个分离的对象错误。
我进行了一些研究并得出结论,merge() 足以满足我的需求,因为即使对象不可用,它也会持续存在并更新。但是我发现这是一个相当肮脏的解决方法,并想检查是否有任何其他解决方案可以解决这个问题。
考虑到我们有一个 Helper 层,所以 Services 层不能直接与 HibernateDao 层一起工作。所以我可以通过添加将调用相同的合并 DAO 方法的 'persist' 和 'update' 方法来“掩盖”这一点。
谢谢,弗拉维奥。