Java 如何使uniqe在实体中归档,但相对多个实体? 公共类任务{ @身份证 @GeneratedValue(策略=GenerationType.AUTO) @列(nullable=false) 私有UUID; @列(nullable=false) 私有字符串标题; @JoinColumn(name=“user\u id”,referencedColumnName=“id”) @多通(可选=假) 私人用户; } 公共类用户{ @身份证 @GeneratedValue(策略=GenerationType.AUTO) @列(nullable=false) 私有UUID; @OneToMany(mappedBy=“user”,cascade=CascadeType.ALL) 私有列表任务=新建ArrayList(); }
我想使标题唯一,但不在表的队列中,我需要为用户提供唯一的标题。用户的任务不应与此用户的其他任务的标题相同。因此,您要寻找的组合是,基于taskTitle+用户的组合,任务应是唯一的:您必须将其添加到Java 如何使uniqe在实体中归档,但相对多个实体? 公共类任务{ @身份证 @GeneratedValue(策略=GenerationType.AUTO) @列(nullable=false) 私有UUID; @列(nullable=false) 私有字符串标题; @JoinColumn(name=“user\u id”,referencedColumnName=“id”) @多通(可选=假) 私人用户; } 公共类用户{ @身份证 @GeneratedValue(策略=GenerationType.AUTO) @列(nullable=false) 私有UUID; @OneToMany(mappedBy=“user”,cascade=CascadeType.ALL) 私有列表任务=新建ArrayList(); },java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我想使标题唯一,但不在表的队列中,我需要为用户提供唯一的标题。用户的任务不应与此用户的其他任务的标题相同。因此,您要寻找的组合是,基于taskTitle+用户的组合,任务应是唯一的:您必须将其添加到任务表中:您可以使用注释进行此操作 public class Task { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(nullable = false) private UUID id; @Column(nullable
任务
表中:您可以使用注释进行此操作
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<>();
}
这样,您将永远不会在任务表中获得具有相同标题+用户的双行
@Table(
name="UNQ_CONSTRAINT_NAME",
uniqueConstraints=
@UniqueConstraint(columnNames={"title", "user_id"})
)
public class Task{
//...
}