gpt4 book ai didi

java - 如何在实体中制作唯一字​​段,但相对多对一实体?

转载 作者:行者123 更新时间:2023-11-30 10:13:00 26 4
gpt4 key购买 nike

public class Task {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false)
private UUID id;

@Column(nullable = false)
private String title;

@JoinColumn(name = "user_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private User user;

}

public class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false)
private UUID id;

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<Task> tasks = new ArrayList<>();

}

我想使标题唯一,但不在表中的队列中,我需要一个用户唯一的标题。用户不应有与该用户其他任务相同的任务。

最佳答案

您正在寻找的组合是基于 taskTitle + 用户的组合,任务应该是唯一的:您必须将其添加到 Task 表中:您可以使用注释来做到这一点

 @Table(
name="UNQ_CONSTRAINT_NAME",
uniqueConstraints=
@UniqueConstraint(columnNames={"title", "user_id"})
)
public class Task{
//...
}

通过这种方式,您将永远不会在 Task 表中出现具有相同标题 + 用户的双行

关于java - 如何在实体中制作唯一字​​段,但相对多对一实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51554586/

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