Я пытаюсь сохранить в базе данных объект UserOnline, который имеет отношение OneToOne с пользователем. Я хочу создать новый, если он не существует, а если он существует, просто изменить комнату.
Это код, который я использую:
UserOnline uo = (UserOnline) UserOnline.find("byUser",
getConnectedUser()).first();
if (uo == null) {
uo = new UserOnline(getConnectedUser(), room);
room.save();
} else {
uo.currentRoom = room;
uo.save();
}
По какой-то причине, хотя uo на самом деле равно нулю, объект на самом деле не сохраняется. Есть идеи, почему это так? Это не дает мне ошибку, просто не создает запись. Мне также интересно, как я могу создать объект UserOnline, начиная с объекта User.
Что-то типа
User user = User.findById(1);
user.onlineStatus.room = room.
user.save();
Можно ли таким образом сохранить связанные объекты (создать, если они не существуют и отредактировать иным образом)?
Пользователь.java
@OneToOne(mappedBy="user")
public UserOnline onlineStatus;
Метод save() из игры каркас.