我有一个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的Map。当我将post实体和headingSlugEntity保存在一起时,headingSlugId会自动填充。这样做很好。下次我获取post实体时,我需要访问headingSlugId而不获取headingSlugEntity。(此时,我不需要HeadingSlugEntity,我只需要它的ID。)我只需要获取headingSlugId。如何操作。由于此实体没有headingSlugId字段,我无法设置和获取它。如果我在post实体内添加一个名为headingSlugId的字段,我将得到Hibernate重复字段错误。如果我将
insertable = false, updatable = false)
并添加字段headingSlugId,则headingSlugId将为空。
我在这里缺少了什么基本的东西?
1条答案
按热度按时间oyxsuwqo1#
在这种情况下,您可以将外键Map到实体两次,一次用于实际的ORM,另一次用于获取FK,而无需实际触发新查询。