gpt4 book ai didi

java - ManyToMany RelationShip 列不允许为 NULL

转载 作者:行者123 更新时间:2023-11-30 06:43:18 24 4
gpt4 key购买 nike

我正在尝试在两个实体之间建立 @ManyToMany 关系。

发布实体:

@Entity
@Table(name="Post")
public class Post {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "post_label", joinColumns = @JoinColumn(name = "POST_ID", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "LABEL_ID", referencedColumnName = "id"))
List<Label> labels = new ArrayList<Label>() ;

// getters and setters

}

标签实体:

@Entity
@Table(name="Label")
public class Label{

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
long id;

String name;

String color;

@ManyToMany(mappedBy = "labels")
List<Post> posts = new ArrayList<Post>() ;

// getters and setters.

}

当我尝试保存帖子时,出现此错误:

org.h2.jdbc.JdbcSQLException: NULL not allowed for column "LABEL_ID"; SQL statement:
insert into noticia (id, date, description, facebookid, postedonfacebook, postedonfake, publishdate, subtitle, title, type, visitorscount) values (null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [23502-194]

当我尝试保存标签时出现类似错误:

org.h2.jdbc.JdbcSQLException: NULL not allowed for column "NOTICIA_ID"; SQL statement:
insert into label (id, color, name) values (null, ?, ?) [23502-194]

第 1 点:我尝试在不添加 Label 的情况下保存 Post(同样的错误)。 我尝试保存 Label 而不添加 Post (同样的错误)

第 2 点:我尝试保存添加 LabelPost (同样的错误)。 我尝试保存添加 PostLabel (同样的错误)

最佳答案

您的映射看起来不错。

问题可能出在您保存实体的方式上。

尝试使用以下代码来保留您的 Post 及其 Label 子实体。

Post post = new Post();

List<Label> labels = new ArrayList<>();
Label firstLabel = new Label();
firstLabel.setColor("MAROON");
firstLabel.setName("MAROONIFIED");
labels.add(firstLabel);

Label secondLabel = new Label();
secondLabel.setColor("BLUE");
secondLabel.setName("BLUEFIED");
labels.add(secondLabel);

post.setLabels(labels);

postRepository.save(post);

另请查看this回答 h2 特定问题。

关于java - ManyToMany RelationShip 列不允许为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44036792/

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