JPA 建立索引 出現的 字段名問題


 

建立索引時,一般字段 和 @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。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM