我有疑问。如果条目不存在,是否可以在数据库中创建新条目?如果存在,则应更新当前条目。
我有这样的事情:
@Transactional
public void saveSettingsForUser(String userId, SettingsMessageModel settings) {
Session session = getSessionFactory().getCurrentSession();
UserSettings userSettings = new UserSettings();
userSettings = (UserSettings) session.load(UserSettings.class, userId);
userSettings.setUserId(userId);
userSettings.setAutoanswer(settings.isAutoanswer());
userSettings.setDnd(settings.isDnd());
session.save(userSettings);
}
适用于数据库中已有的条目。但是,如果我想用primery key userId保存新的,它不允许我。 任何建议表示赞赏。谢谢!
答案 0 :(得分:1)
如果以下代码不存在此ID,我设法创建新条目:
@Transactional
public void saveSettingsForUser(String userId, SettingsMessageModel settings) {
Session session = getSessionFactory().getCurrentSession();
UserSettings userSettings = (UserSettings) session.get(
UserSettings.class, userId);
if (userSettings == null) {
userSettings = new UserSettings();
}
userSettings.setUserId(userId);
userSettings.setAutoanswer(settings.isAutoanswer());
userSettings.setDnd(settings.isDnd());
session.saveOrUpdate(userSettings);
}
我使用session.get()方法而不是session.load()。这种方法允许我检查数据库中是否有条目,如果没有,我创建它。 希望它会帮助别人。