gpt4 book ai didi

java - 在数据库中保存 OneToOne 映射对象?

转载 作者:行者123 更新时间:2023-12-01 15:40:57 25 4
gpt4 key购买 nike

我正在尝试在数据库中保存一个 UserOnline 对象,该对象与 User 具有 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 实际上为 null,该对象实际上并未保存。有什么想法吗?它没有给我一个错误,它只是没有创建记录。我还想知道如何从 User 对象开始创建 UserOnline 对象。

类似

User user = User.findById(1);
user.onlineStatus.room = room.
user.save();

相关对象可以(如果不存在则创建并以其他方式编辑)以这种方式保存吗?

用户.java

@OneToOne(mappedBy="user")
public UserOnline onlineStatus;

save()方法是from the play framework.

最佳答案

我猜这个问题与Play Framework有关。如果是这样,最好将其标记为这样,因为在 Play Framework 中使用 Hibernate 有一些特殊性,请参阅 Explicit save .

关于这个问题,Play Framework 的 save() 级联在具有 cascade=CascadeType.ALL 的关系上。如果您的相关关系是这样配置的,那么它应该可以正常工作。

关于java - 在数据库中保存 OneToOne 映射对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8034385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com