您要搜索的称为
Embeddable。
@Entitypublic class Fizz { ... @Embedded private Buzz buzz;}您可以只为以下内容定义 映射文件
Buzz:
<entity-mappings version="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"> <embeddable > <attributes> <basic name="jupiter"><column name="fizz_buzz_jupiter"/></basic> <basic name="neptune"><column name="fizz_buzz_neptune"/></basic> </attributes> </embeddable></entity-mappings>
您可以在您的中包含该映射文件
persistence.xml:
<persistence-unit> <mapping-file>.../orm.xml</mapping-file></persistence-unit>
如果您真的想对以下内容使用批注
Buzz:您不能为其他类定义批注。那就是注释的含义:它们是 内联的 ,属于它们的类。否则与映射文件相比将没有任何好处。
但是您可以扩展
Buzz该 属性 并将其与 属性访问 一起 使用 :
@Entitypublic class Fizz { ... @Embedded private BuzzExtension buzz;}@Embeddable@Access(AccessType.PROPERTY)public class BuzzExtension extends Buzz { @Column(name="fizz_buzz_jupiter") public int getJupiter() { return super.getJupiter(); } @Column(name="fizz_buzz_neptune") public String getNeptune() { return super.getNeptune(); }}唯一的缺点:您不能使用
Buzzin的实例
Fizz。



