簡體   English   中英

在 Hibernate 實體中映射通用屬性時出現異常

[英]Exception while mapping generic property in Hibernate entity

我們正在從休眠 XML 遷移到注釋,並且在映射通用屬性后啟動 EAR 時遇到了這個異常。

Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.AppTerminalTypeCriteria.devicePropertiesCriteria

這是與此異常相關的代碼。

AppTerminalTypeCriteria 類中的映射屬性

@javax.persistence.Entity
@Table(name = "TYPE_CRITERIA")
public class AppTerminalTypeCriteria {
//Some fields
    @OneToMany(orphanRemoval = true)
    @JoinTable(inverseJoinColumns=@JoinColumn(name="APP_CRITERIA_PROPERTY_ID"))
    @org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
    private Set<PropertyCriteria<?>> devicePropertiesCriteria = new HashSet<PropertyCriteria<?>>();

}

PropertyCriteria 實體

@Entity(name="PropertyCriteria")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "PROPERTY_CRITERIA")
@DiscriminatorColumn(name = "PROPERTY_CRITERIA_TYPE", discriminatorType = DiscriminatorType.STRING)
public abstract class PropertyCriteria<T extends Comparable<T>> implements Serializable {
// the rest of the class 
}

和 PropertyCriteria 的子類之一

@Entity
@DiscriminatorValue("5")
public class BooleanPropertyCriteria extends PropertyCriteria<Boolean> {

}

這是我們試圖擺脫的 XML 映射

在 AppTerminalTypeCriteria.hbm.xml 中

<set name="devicePropertiesCriteria" inverse="false" cascade="all-delete-orphan">
            <cache usage="transactional" />
            <key column="APP_CRITERIA_PROPERTY_ID" />
            <one-to-many
                class="PropertyCriteria"
                entity-name="PropertyCriteria" />
</set>

在 PropertyCriteria.hbm.xml 中

<class name="PropertyCriteria" table="PROPERTY_CRITERIA" entity-name="PropertyCriteria">
<discriminator type="string" column="PROPERTY_CRITERIA_TYPE" />
<subclass name="com.emeint.server.core.propertycriteria.BooleanPropertyCriteria" discriminator-value="5" />

如何修復此異常?

錯誤消息清楚地表明該實體未在持久性單元中注冊。 也許您沒有在 persistence.xml 中將此 PropertyCriteria.hbm.xml 列為mapping-file

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM