繁体   English   中英

"无法创建未找到的唯一键约束"

[英]Unable to create unique key constraint not found

我有以下实体:

@Entity
@Table(name = "campaign_content", uniqueConstraints = @UniqueConstraint(columnNames = { "campaignContentId", "campaignId", "fieldTag" }))    
public class CampaignContent implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "campaign_content_id")
    private Integer campaignContentId;

    @Column(name = "field_content")
    private String fieldContent;

    @Column(name = "campaign_id")
    private Integer campaignId;

    @Column(name = "field_tag")
    private String fieldTag;

该列的名称是campaign_content_id ,而不是campaignContentId 当然,其他列也是如此。 columnNames属性需要一个 ... 列名数组。 不是 Java 字段或属性名称的数组。

在我的情况下,此代码有效,一个物理表字段名称和一个实体对象成员字段名称。

@Table(uniqueConstraints={@UniqueConstraint(columnNames = {"account_id" , "measureDate"})})

但是这段代码在相同的例外情况下根本不起作用。

@Table(uniqueConstraints={@UniqueConstraint(columnNames = {"account_id" , "measure_date"})})

有人报告这个错误休眠。 检查这个。 https://forum.hibernate.org/viewtopic.php?f=9&t=986581&view=next

我用

  • 弹簧靴
  • 弹簧数据
  • mysql

我的问题由此解决了您的表定义必须如下所示 @Table(name = "campaign_content", uniqueConstraints = @UniqueConstraint(columnNames = { "campaign_content_id", "campaign_id", "field_tag" }))

对于在使用 Kotlin 时遇到此错误的任何人,我的问题是由在var上使用@Column而不是@get:Column引起的。 哦!

如果任何用@Column(name="...") 注释的约束列,您还需要将@Columnt(name = "...") 添加到另一个约束列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM