建立索引时,一般字段 和 @ManyToOne等关联注解标识的字段 对于 字段名的写法有一定差别。
1、一般字段
@Table(indexes = { @Index(columnList = "shareType"), }) @Column(nullable = false) private ShareType shareType; //分享类型
shareType 属性在数据库中对应的字段是 share_type,但 @Index 中columnList如果填入 share_type 则会报错,必须填写属性名 shareType。
2、@ManyToOne等关联注解标识的字段
@Table(indexes = { @Index(columnList = "app_user"), }) @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(nullable = false,foreignKey = @ForeignKey(name = "none",value = ConstraintMode.NO_CONSTRAINT)) @JsonIgnore private AppUser appUser;
appUser 属性 被@ManyToOne标注,此时 @Index的columnList必须填写 数据库真实字段名 app_user,而不能填写属性名 appUser。
