gpt4 book ai didi

java - JPA:如何创建与实体类型相同的字段?

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:04 25 4
gpt4 key购买 nike

我的类(class)看起来像

@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;

我想要一个与 Version 类型相同的 parentVersion,但我的测试失败

@Test
public void testVersion() {
Version version = new Version("testVersion", VersionType.MAJOR);
version = crudService.create(version);
assertNotNull(version.getId());
}

我看到错误为

Caused by: org.hibernate.MappingException: Could not determine type for: com.myorg.project.versioning.entities.Version, at table: Version, for columns: [org.hibernate.mapping.Column(parentVersion)]

如何解决这个问题?

最佳答案

这不是基本属性。它是关系,因为值(value)是其他实体。因此@ManyToOne应该使用注释:

@ManyToOne
private Version parentVersion;

如果需要双向关系( parent 了解 child ),可以通过添加以下内容来完成:

@OneToMany (mappedBy = "parentVersion")
private List<Version> childVersions;

关于java - JPA:如何创建与实体类型相同的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14795468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com