我有两个具有两种不同类型(一般和自定义)的相关实体,并将其保存在同一个表中。类型通用的实体应该具有唯一的字段名值,并且自定义可以有不同用户的副本,而不是重复的通用名称。我正在寻找一种创建条件唯一约束的方法,以检查下一种情况:
@Entity @Table( uniqueConstraints = @UniqueConstraint(columnNames ={“purposeId”}) GeneralPurpose公共类GeneralPurpose{ @Id @GeneratedValue(strategy=GenerationType.AUTO,generator="purpose_seq_gen") @SequenceGenerator(name="purpose_seq_gen",sequenceName="PURPOSE_SEQ") @列(name= "purposeId",nullable = false)私有long purposeId;@Column(name = "type",nullable = false) @(EnumType.STRING)@ CustomPurpose公共类GeneralPurpose { @ManyToOne() @JoinColumn(name="id") @JsonIgnore专用用户;公共枚举PurposeType { GENERAL,定制}
发布于 2016-09-07 13:11:44
您可以通过将另一列添加到目的性表中来完成此操作。此列用于存储常规记录的常量值,以及自定义记录的用户id。对于一般记录,值可以是0(如果用户id是数字的)或" GENERAL“(如果用户id是字符串)。它可以被命名为“userOfRecord”或“记录鉴别器”,类似这样。
然后,可以对类型、名称、userOfRecord添加唯一的约束。
https://stackoverflow.com/questions/39367341
复制相似问题