我正在尝试将同一个朋友的关系保存在同一user_friend db表中,但是方法结束时仅将其保留在db中。
@Override
@Transactional(readOnly = false)
public boolean saveLocalFriends(UserFriend userFriend) {
UserFriend userFriendToRevert = userFriend;
if (this.friendDao.saveFriend(userFriend)) {
userFriendToRevert.revert();
return this.friendDao.saveFriend(userFriendToRevert);
}
return false;
}
基于@macias贡献的好方法。
@Override
@Transactional(readOnly = false)
public boolean saveLocalFriends(UserFriend userFriend) {
UserFriend userFriendToRevert = new UserFriend();
BeanUtils.copyProperties(userFriend, userFriendToRevert);
if (this.friendDao.saveFriend(userFriend)) {
userFriendToRevert.revert();
return this.friendDao.saveFriend(userFriendToRevert);
}
return false;
}
在您发布的方法中,单个实体保存两次。我不确定revert方法的作用,但是我认为它只是以某种方式改变了UserFriend的状态。第二次保存将基本上覆盖第一个。注意
UserFriend userFriendToRevert = userFriend;
仅复制参考。如果您打算保留userFriend的修改后的副本,则需要采取艰苦的方式-构造一个新的UserFriend对象并逐个复制属性,然后保留该副本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句