我有一個 POST 條目和 HeadingSlugEntity。
public class PostEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String postId;
private String uid;
private String dateCreated;
private String dateUpdated;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "headingSlugId", referencedColumnName = "headingSlugId")
private HeadingSlugEntity headingSlugEntity;
}
我有 HeadingSlugEntity 的 1:1 映射。當我將帖子物體和 headingSlugEntity 保存在一起時,headingSlugId 會自動填充。那作業正常。下次獲取 post 物體時,我需要訪問 headingSlugId 而不獲取 headingSlugEntity。(此時,我不需要 HeadingSlugEntity,我只需要它的 ID。)我只需要獲取 headingSlugId。怎么做。由于該物體沒有欄位 headingSlugId,我無法設定和獲取它。如果我在帖子物體中添加一個名為 headingSlugId 的欄位,我將收到休眠重復欄位錯誤。如果我把
insertable = false, updatable = false)
并添加欄位 headingSlugId,headingSlugId 將為 Null。
我在這里缺少什么基本的東西?
uj5u.com熱心網友回復:
在這種情況下,您可以將外鍵映射到物體兩次,一次用于實際 ORM,另一次用于在不實際觸發新查詢的情況下獲取 FK。
public class Answer {
@Column(name = "headingSlugId", insertable = false, updatable = false)
private Integer headingSlugId;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "headingSlugId", referencedColumnName = "headingSlugId")
private HeadingSlugEntity headingSlugEntity;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/504458.html
