JPA中, @embedded和@embeddable这两个注解有什么区别.. 新手. 有点晕.
作者&投稿:延畏 (若有异议请与网页底部的电邮联系)
EmploymentPeriod类无对应表只为数据存取方便,Employee 对应表中按照column=@Column("EMP_START")设计结构就行
hibernate注解比较好,因为他用的是jpa标准注解,万一有一天,你的持久层框架换成jpa,那么你那些持久类仍能使用,用注解感觉比较明了,简化代码
@embeddable是注释Java类的,表示类是嵌入类。@embedded是注释属性的,表示该属性的类是嵌入类。
例子:
@Embeddable @Access(AccessType.FIELD)
public class Address {
private String street;
private String city;
private String state;
@Column(name="ZIP_CODE")
private String zip;
// ...
}
@Entity
public class Employee {
@Id private int id;
private String name;
private long salary;
@Embedded private Address address;
// ...
}
前者已嵌入,后者可嵌入
敖养吉祥: @embeddable是注释Java类的,表示类是嵌入类.@embedded是注释属性的,表示该属性的类是嵌入类.例子:@Embeddable @Access(AccessType.FIELD) public class Address { private String street; private String city; private String state; ...
楚雄市15193799710: jpa idclass 复合主键怎么定义单个外键 - ?
敖养吉祥: 使用@EmbeddedId,是把主键代码嵌入到bean class中 有两种方法把主键类的成员属性映射到表中的字段,一种是在主键类的源代码中指定@Column映射 另一种是使用@AttributesOverrides.
楚雄市15193799710: JPA 嵌入式对象应用?
敖养吉祥: EmploymentPeriod类无对应表只为数据存取方便,Employee 对应表中按照column=@Column("EMP_START")设计结构就行
楚雄市15193799710: jpa中复合主键并且都是外键,请问怎么写注解 - ?
敖养吉祥: 在设计数据库表的时候,往往会设计出带有复合主键的表,即表的记录由多个字段联合标识,如: 表 Sql代码 CREATE TABLE TB_HOUR_DATA ( STAT_DATEDATE NOT NULL, PATH_IDNUMBER(20) NOT NULL, ...
楚雄市15193799710: Hibernate中的UserType问题?
敖养吉祥: 使用UserType首先要弄清楚它的目的.大家知道Hibernate解决的主要是对象数据库阻抗失衡的问题,也就是如何将一个或多个对象保存到一个或多个数据库表格中.这其中有很多方法,其实大部分情况下采用@Embeddable和@Embedded就可...
楚雄市15193799710: Java 中@是什么 JPA 是什么?
敖养吉祥: @是java中的注解. JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.
楚雄市15193799710: jpa 注解,也就是javax.persistence 里面的东西,@Id, @Column 这些要标注在哪里? - ?
敖养吉祥: 你可以看看JPA注解的API文档,@Id一般定义只在变量上.@Column的,API显示它是@Target({METHOD, FIELD}) @Retention(RUNTIME),说明既可以定义在方法上,也可以定义在变量上.所以只定义在getter方法上就表示它是只读属性,定义在变量上就是读写皆可.
楚雄市15193799710: JPA的乐观锁注解@Version是不是需要在数据库表中增加字段 - ?
敖养吉祥: @Version 默认情况下,JPA 持续性提供程序假设应用程序负责数据一致性. 使用 @Version 批注通过指定用作其乐观锁定值的实体类的版本字段或属性来 启用 JPA 管理的乐观锁定(推荐做法). 选择版本字段或属性时,确保: · · 每个实...
楚雄市15193799710: jpa 多对多表映射应该怎么写 - ?
敖养吉祥: 多对多关系:(2个类可以互相包含多个对方,多对多有个中间表) 中间表无实体类,只在数据库中存在 @ManyToMany @JoinTable(name="中间表名称", joinColumns=@joinColumn(name="本类的外键", referencedColumnName="本类与外键对应的主键"), inversejoinColumns=@JoinColumn(name="对方类的外键", referencedColunName="对方类与外键对应的主键") )
楚雄市15193799710: jpa 如何优雅的实现动态sql - ?
敖养吉祥: 案例 1. 动态语言注解 import www.ijava.com.entity.User;/** (1)动态语言注解 对于创建动态的查的语言.MyBatis提供了多个注解如:@InsertProvider,@UpdateProvider,@DeleteProvider和 @SelectProvider,这些都是建立动态语言和让MyBatis执...