【发布时间】:2014-07-17 04:55:11
【问题描述】:
好的,这是一个简单的例子:
我有一个这样定义的抽象超类:
abstract public class AbstractSuperEntity {
private char someFlag;
public void setSomeFlag(char flagValue) {
this.someFlag = flagValue;
}
public char getSomeFlag() {
return this.someFlag;
}
}
我所有的@Entity 类都继承自它。一个例子可能是:
@Entity
@Table("SOME_ENTITY")
public class SomeEntity extends AbstractSuperEntity {
@Column(name="ID");
private Long id;
etc.
}
AbstractSuperEntity 中的someFlag 属性是否需要有@Transient?
我试过了,不管有没有,它似乎没有任何区别。但我只是害怕我错过了什么。
编辑感谢所有快速回答。
一位同事还向我介绍了 JPalace.org 上的 JPA 教程,特别是 ORM and JPA Concepts 上的页面,其中包含以下部分:
非实体超类
实体也可以扩展非实体超类。这些超类可以是抽象的,也可以是具体的。非实体超类的状态总是非持久的。因此,实体类从非实体超类继承的任何状态都是非持久的。
与映射的超类类似,非实体超类不得用于查询。 忽略非实体超类中存在的映射和关系注释。同样,这是因为没有对应的数据库表可以应用查询操作或关系。
【问题讨论】:
标签: java hibernate jpa transient