Tag: mappedsuperclass

将generics类@MappedSuperclass应用为targetEntity.Error:模型上的@ManyToOne.Unit.parent引用未知实体:models.GenericHierarchic

我有扩展其他generics类的generics类。 所有这些都是@MappedSuperclass 。 所以他们在数据库中没有自己的表。 它们也是抽象的,所以它们没有任何物体。 它们只是我的实体@Entity骨架 我的inheritance结构: Generic -> GenericDictionary -> GenericHierarchicalDictionary -> Unit Unit是@Entity类并且有对象。 @Entity public class Unit extends GenericHierarchicalDictionary {} 单元实体具有层次结构 ,这意味着实体与自身有关系,但我正在使用抽象类( @MappedSuperclass ),所以我想在该抽象类中动态定义它: 我的GenericHierarchicalDictionary: @MappedSuperclass public abstract class GenericHierarchicalDictionary<T extends Generic> extends GenericDictionary { @Required @ManyToOne(targetEntity = GenericHierarchicalDictionary.class, fetch=FetchType.LAZY, cascade = {CascadeType.ALL}) @JoinColumn(name=”parent_id”) public GenericHierarchicalDictionary parent; 但id dosnt工作。 我收到一个错误: play.api.UnexpectedException: Unexpected exception[PersistenceException: […]

JPA @MappedSuperclass在Eclipse中的单独JAR中

我有一个@MappedSuperclass AbstractEntity,我用于所有@Entity类。 只要超类与我的实体在同一个Eclipse项目中,它就可以完美地工作。 但是因为我在几个项目中重用了这个超类,所以我只想把它分解成自己的JAR文件。 当我这样做(当然我将JAR文件添加到构建路径中)时,Eclipse会在每个@Entity类上给出错误: 实体没有定义主键属性。 Eclipse突出显示@Entity注释作为错误的来源。 当然,所有类都inheritance自此AbstractEntity。 两个项目中的包名称相同。 JAR项目具有所有必需的构建路径 – 包含AbstractEntity的JAR文件项目中没有错误。 当我将它部署到我的应用服务器(JBoss 7.1)时,它工作正常。 这让我觉得它只是一个Eclipse问题,它错误地识别错误。 抽象实体: package com.xyc.abc; import java.io.Serializable; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.MappedSuperclass; @MappedSuperclass public abstract class AbstractEntity implements Serializable { private static final long serialVersionUID = 1L; private Long id; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) public Long getId() { return […]

在GAE / J和JPA上使用@MappedSuperclass时,“字段jdoFieldFlags是冲突的”

在查询GAE / J上的mappedsuperclass扩展的实体时出错。 MappedSuperClass import java.sql.Timestamp; import javax.persistence.MappedSuperclass; @MappedSuperclass public abstract class AbstractModel { private String lastModifiedBy; private Timestamp createTimestamp; private Timestamp modifyTimestamp; private Integer version; // setters & getters } 实体 import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = “EMPLOYEE”) public class EmployeeModel extends AbstractModel { @Id private Integer id; private String address; […]

Hibernate:如何只获取非逻辑删除的对象

几乎我们数据库中的每个表都有一个FK到审计表,它记录创建,更新和删除的状态(日期和用户名)。 我们将审计表映射到Auditing类并使用它如下: @MappedSuperclass public class BusinessObject extends DataObject { private static final long serialVersionUID = -1147811010395941150L; @OneToOne(fetch = FetchType.EAGER, cascade = { CascadeType.ALL }) @JoinColumn(name = “AUD_ID”) private AuditingObject auditing; … 正如您所期望的那样,几乎每个实体都从BusinessObject扩展而来。 有一种简单的方法可以说,对于每个businessObject,只接收“auditing.deleted为null”。 我已经尝试在businessObject中添加@Where和@WhereJoinTable,但这似乎并不像我期望的那样工作。 目前,我已经对我的一个查询进行了此操作,但这是有效的,但我讨厌为所有查询执行此操作,因为我们有大约150个查询。 @NamedQuery( name=”allCountries”, query=”SELECT c FROM Country c” + ” LEFT JOIN FETCH c.labelDefinition ” + ” LEFT JOIN FETCH c.labelDefinition.translations […]

MappedSuperclass – 在子类中更改SequenceGenerator

我正在使用JPA2和Hibernate,并尝试为我的实体引入一个公共基类。 到目前为止看起来像这样: @MappedSuperclass public abstract class BaseEntity { @Id private Long id; @Override public int hashCode() { // … } @Override public boolean equals(Object obj) { // … } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } } 但是,对于每个表都有一个序列$entityname_seq ,我想用它作为我的序列生成器。 如何从我的子类中设置它? 我想我需要覆盖@GeneratedValue并使用@SequenceGenerator创建一个新的SequenceGenerator。

Hibernate:如何覆盖映射超类的属性

通用实体,超类: @MappedSuperclass public abstract class GenericEntity { private Integer id; public Integer getId() {return id;} public void setId(Integer id) {this.id = id;} } pojo: @Entity @Table(name = “POJO_ONE”) @SequenceGenerator(name = “HB_SEQ_POJO_ONE”, sequenceName = “SEQ_POJO_ONE”, allocationSize = 1) public class PojoOne extends GenericEntity { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = “HB_SEQ_POJO_ONE”) @Column(name = “ID”) @AttributeOverride(name = […]