JPA @Embedded注释是强制性的吗?
我尝试省略注释,并且字段仍然嵌入在表中。我找不到任何会说注释是可选的。@Embedded
@Embedded
它是可选的还是非可选的?
下面的代码
@Embeddable
public class Address {
String city;
String street;
}
@Entity
public class Person {
String name;
@Embedded // it seems that it works even if this annotation is missing!?
Address address;
}
生成始终相同的表
person
name
city
street
即使我没有指定.@Embedded
我的配置:
- JBoss EAP 6.4.0
- hibernate-jpa-2.0-api-1.0.1.Final-redhat-3.jar
JPA规范说:
http://docs.oracle.com/javaee/7/api/javax/persistence/Embedded.html
@javax.persistence.Embedded
指定其值为可嵌入类的实例的实体的持久性字段或属性。可嵌入类必须注释为可嵌入类。
http://docs.oracle.com/javaee/7/api/javax/persistence/Embeddable.html
@javax.persistence.Embeddable
指定一个类,其实例存储为拥有实体的内部部分并共享实体的标识。嵌入对象的每个持久性属性或字段都映射到实体的数据库表。