java两个实体复制_java – JPA:两个实体之间的多对多关系?

在Java JPA中遇到多对多关系映射的问题,当尝试将文档分配给用户收件箱时,出现1364错误,提示字段'useroutbox_ID'没有默认值。解决方案可能包括调整表结构,创建独立的关联表,或者修正实体类的映射配置。博主寻求帮助以避免插入错误并确保正确存储用户和文档之间的多对多关系。
摘要由CSDN通过智能技术生成

我有两个实体类’User’和’Document’.每个用户都有一个收件箱和一个发件箱,实际上是两个列表,每个文档可能驻留在多个收件箱和发件箱的用户中.这是我的课程:

@Entity

public class User {

@Id

private Long id;

@ManyToMany(mappedBy = "userinbox", cascade=CascadeType.ALL)

private List inbox = new ArrayList();

@ManyToMany(mappedBy = "useroutbox", cascade=CascadeType.ALL)

private List outbox = new ArrayList();

}

@Entity

public class Document {

@Id

private Long id;

@ManyToMany(cascade=CascadeType.ALL)

private List userinbox = new ArrayList();

@ManyToMany(cascade=CascadeType.ALL)

private List useroutbox = new ArrayList();

}

当我运行该程序并尝试将文档分配给用户的收件箱(反之亦然)时,我收到以下错误:

Error Code: 1364

Call: INSERT INTO DOCUMENT_USER (userinbox_ID, inbox_ID) VALUES (?, ?)

bind => [2 parameters bound]

Internal Exception: java.sql.SQLException: Field 'useroutbox_ID' doesn't have a default value

Query: DataModifyQuery(name="userinbox" sql="INSERT INTO DOCUMENT_USER (userinbox_ID, inbox_ID) VALUES (?, ?)")

生成的关联表如下所示:

DOCUMENT_USER

useroutbox_ID | outbox_ID |userinbox_ID | inbox_ID

如何为这种多对多关系分配默认值?制作两个关联表会更好吗?>一个用于收件箱关系,另一个用于收件箱关系?我怎么做到这一点?解决这个问题的其他方法?

任何帮助高度赞赏 – 非常感谢提前!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值