gpt4 book ai didi

java - 由 : org. 引起的 hibernate.MappingException: Could not determine type for

转载 作者:行者123 更新时间:2023-11-29 09:06:22 26 4
gpt4 key购买 nike

我有一个 JPA 实体作为

@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "name", "market_version" }))
public class Market extends MutableEntity {

@Column(nullable = false)
private String name;
@Column
private String description;
@Column(name = "market_version", nullable = false)
private Version marketVersion;

public Market(final String name, final String description) {
this.name = name;
this.description = description;
this.marketVersion = new Version("1.0", VersionType.MAJOR, VersionStatus.ACTIVE);
} ... snipped

其中包含一个 VersionVersion 类看起来像

public class Version {
private String name;
private VersionType type;
private VersionStatus status;
private DateTime publishedOn;
private DateTime retiredOn;
private Version parentVersion;

public Version(@Nonnull final String name, @Nonnull final VersionType type, @Nonnull final VersionStatus status) {
this.name = name;
this.type = type;
this.status = status;
}
}

enum VersionType {
MAJOR,
MINOR,
BOTH
}

enum VersionStatus {
ACTIVE,
RETIRED
}

当我尝试在测试中保存 market 实体时,

    @Test
public void testMarket() {
final Market market = new Market("test", "test market");
final MarketCrudService crudService = new MarketCrudService(jpaRule.getEntityManager());
crudService.create(market);
}

我看到错误

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

这里的问题到底是什么?我该如何解决?

最佳答案

您要么必须像使用 Market 一样使用自己的表使 Version 成为一个完整的实体,要么如果您想将其保存为 Market 的一部分,则应使用 @Embeddable 注释使其可嵌入。

如果使其可嵌入,则必须从 Market 的 marketVersion 字段中删除 @Column 注释。

关于java - 由 : org. 引起的 hibernate.MappingException: Could not determine type for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14795191/

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