【发布时间】:2017-08-20 18:18:49
【问题描述】:
我试图在我的实体中拥有相同域类的 2 个字段,但出现此错误:
org.hibernate.MappingException:无法确定类型:com.packt.webapp.domain.User,在表:意见,列:[org.hibernate.mapping.Column(作者)]
我的实体:
@Entity
@Table(name="opinions")
public class Opinion {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@NotNull
private String text;
@NotNull
private String date;
@ManyToOne
@JoinColumn(name="commented_user")
private User writtenTo;
private User author;
@Entity
@Table(name="user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String username;
private String password;
@OneToMany(mappedBy="writtenTo")
private List<Opinion> opinions;
我只想将意见映射到author 字段中的评论用户和评论的存储作者。当我删除 author 字段时,一切正常。这个例子有什么问题?
【问题讨论】:
-
为什么不从
User中删除List<Opinion> opinions并使用 JPQL 进行查询? -
您是否尝试对writtenTo 和author 都使用ManyToOne 注释?
-
@michaeak 你的意思是有 2 个简单的字段,例如:
commentedUser和author?这是个好主意 :) 但我只是想知道为什么我的代码不起作用。 -
@jmw5598 不,我尝试仅在
writtenTo上使用它。 -
它正在尝试映射作者,但由于您没有提供关系,所以不知道如何。您可以使用与映射writtenTo 类似的方式对其进行映射