我的班级看起来像
@Entity
public class Version extends MutableEntity {
@Column(nullable = false)
private String name;
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private VersionType type;
@Column(nullable = false)
@Enumerated(EnumType.STRING)
private VersionStatus status;
@Column(nullable = true)
private DateTime publishedOn;
@Column(nullable = true)
private DateTime retiredOn;
@Column
private Version parentVersion;
我希望parentVersion
与[{1}}具有相同的类型,但我的测试失败
Version
我将错误视为
@Test
public void testVersion() {
Version version = new Version("testVersion", VersionType.MAJOR);
version = crudService.create(version);
assertNotNull(version.getId());
}
如何解决此问题?
答案 0 :(得分:1)
这不是基本属性。它是关系,因为价值是其他实体。因此,应使用@ManyToOne注释:
@ManyToOne
private Version parentVersion;
如果需要双向关系(父母知道孩子),可以通过添加以下内容来完成:
@OneToMany (mappedBy = "parentVersion")
private List<Version> childVersions;
答案 1 :(得分:0)
您在parentVersion
错过了一些注释。 Hibernate不知道如何在数据库中映射此列。
将@JoinColumn
添加到您的字段,hibernate将使用其@Id字段。