繁体   English   中英

持续扩展实体(jpa)的非实体类-示例?

[英]Persisting non-entity class that extends an entity (jpa) - example?

JPA教程指出,可以有一个扩展实体类的非实体:

实体可以扩展实体类和非实体类,非实体类可以扩展实体类。 -http://java.sun.com/javaee/5/docs/tutorial/doc/bnbqa.html

是否可以坚持这样的结构?

我想做这个:

@Entity
abstract class Test { ... }

class FirstConcreteTest extends Test { ... } // Non-ntity
class SecondConcreteTest extends Test { ... } // Non-entity

Test test = new FirstConcreteTest();

em.persist(test);

我想要做的是将所有抽象类上映射到所有具体类(第一和第二个类)的公共数据库表的字段持久化,而第一和第二个测试类的所有字段都保持不变(这些类可以包含EJB,jdbc之类的东西)池等)。

还有一个奖金问题。 是否也可以保留抽象属性?

@Entity
abstract class Test {

    @Column
    @Access(AccessType.PROPERTY)
    abstract public String getName();

}

class SecondConcreteTest extends Test {
    public String getName() {
        return "Second Concrete Test";
    }
}

再次阅读该链接。 “实体类必须遵循以下要求:*该类必须使用javax.persistence.Entity注释进行注释。”

如果类是非实体,则它是非实体,因此不会作为实体持久存在。 任何可持久性都必须这样标记,因此将您的子类标记为Entity,并将您不想持久化的字段标记为“瞬态”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM