我试图 忽略 了@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
。
我的配置:
JPA规范说:
http://docs.oracle.com/javaee/7/api/javax/persistence/Embedded.html
@javax.persistence.Embedded
指定实体的持久字段或属性,其值是可嵌入类的实例。必须将embeddable类注释为Embeddable。
http://docs.oracle.com/javaee/7/api/javax/persistence/Embeddable.html
@javax.persistence.Embeddable
指定一个类,其实例存储为拥有实体的固有部分并共享该实体的标识。嵌入对象的每个持久属性或字段都映射到该实体的数据库表。
如果使用Hibernate,则注释字段本身(如@Embedded
)还是注释引用的类(如@Embeddable
)都没有关系。使Hibernate确定类型至少需要两者之一。
在Hibernate文档中有一个(隐式的)声明,请看这里:http : //docs.jboss.org/hibernate/core/3.6/reference/en-
US/html/mapping.html#mapping-
声明组件
它说:
Person实体具有两个组件属性,homeAddress和bornIn。homeAddress属性尚未被注释,但是Hibernate通过在Address类中查找@Embeddable注释将猜测它是一个持久性组件。
我尝试省略注释,但这些字段仍然被嵌入到表中。我找不到任何东西表明注释是可选的。 我的配置: JBoss EAP 6.4.0 hibernate-jpa-2.0-api-1.0.1.final-redhat-3.jar JPA规范规定: 指定一个类,其实例存储为所属实体的固有部分,并共享该实体的标识。嵌入对象的每个持久属性或字段都映射到实体的数据库表。
问题: count属性是必需的&前缀是必需的。如果您看到beanClass2,我将通过构造函数设置属性,在beanClass3中也是如此 但是当我执行代码时,它抛出异常。让我困惑的重要事情是: 2014年12月9日8:47:33 PM org.springframework.beans.factory.support.defaultsingletonbeanregistry destroySing
问题内容: 我正在从本教程中学习JPA 。 我在理解以下注释时有些困惑: 可嵌入类型的字段默认为持久性,就像用@Embedded注释一样。 如果可嵌入类型的字段默认为持久性,那么为什么我们需要注释 问题答案: 该注解允许指定一个类,其实例存储为拥有实体的固有部分。此注释 没有属性 。 该注释用于指定其值是一个可嵌入类的实例实体的持久字段或属性。默认情况下,类中指定的列定义适用于拥有实体的表,但是
问题内容: 嵌入式注释如何影响数据库? SQL查询将如何改变? 使用注释的典型用例是什么? 问题答案: 嵌入式注释如何影响数据库? 它根本不影响它。在ORM提供程序层上,来自嵌入式实体的所有字段都 将 与父实体 合并 ,并像对待它们始终在其中声明一样。换句话说,它的工作方式就好像您将所有字段,获取器和设置器直接复制到包含嵌入式对象的实体中一样。 SQL查询将如何改变? 他们不会。您无需更改任何内容
我有一个spring rest服务,它接受Person对象。Person对象具有名称、电话号码和电子邮件。当添加一个人时,电话号码是强制性的。如果存在电话号码属性,它将使用或或验证是否为空。但是如果属性不存在,验证就不起作用。请建议提供任何验证注释,以检查JSON请求中是否存在该属性。 以下是请求体测试用例 {“name”:“anu”,“phonenumber”:“”,“email”:“test@
我正在阅读使用Spring框架的事务管理。在第一个组合中,我使用Spring Hibernate和Hibernate的API来控制事务(Hibernate API)。接下来,我想使用注释进行测试,它确实起了作用。 我感到困惑的是: > JPA、JTA、Hibernate是否有自己的事务管理方式。举个例子,考虑如果我使用Spring Hibernate,在那种情况下,你会使用“JPA”事务吗? 就像