目前我正在尝试实现几个实体,其中一个实体在数据库中有一列可以代表其他两个实体。
要明确这些是我正在讨论的表格,我可以不更改它们
页面表:
逻辑是图像可以由用户或页面拥有。它所拥有者由position_id和path列表示。所以路径可以是USER或PAGE,而position_id是用户/页面的id。
如何在JPA中实现position_id与用户和页面之间的ManyToOne关系?
我想象它看起来像这样:
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="position_id", insertable = false, updatable = false)
@Where(clause="path='pages'")
private Page page;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="position_id", insertable = false, updatable = false)
@Where(clause="path='users'")
private User user;
然而,这将返回用户或页面的所有图像实例,忽略它具有的路径。此外,当我尝试根据Image实体的路径值过滤值时,它会给我LazyInitializationException。 如何解决这个问题?