JPA实体注解(三)
来源:互联网 发布:dwg转excel软件 编辑:程序博客网 时间:2024/06/10 11:50
添加实体类和使用JPA的注解标注持久化特性
一、实体应具备以下的条件:
# 必须使用javax.persistence.Entity注解或者在XML映射文件中有对应的元素;
# 必须具有一个不带参的构造函数;
# 类不能声明为finall,方法和需要持久化的属性也不能声明为final;
# 如果游离状的实体对象需要以值的方式进行传递,如通过Session bean的远程业务接口传递,则必须实现Serializable接口;
# 需要持久化的属性,其访问修饰符不能是public,它们必须通过实体类方法进行访问。
二、实体Annotation--基本注解
@Entity
# 将对象标注为一个实体,表示需要保存在数据库中
# 默认情况下类名即为表名,通过name属性显式指定表名
@Id
# 对应的属性是表的主键
@GeneratedValue
# 主键的产生策略,通过strategy属性指定;
# 默认情况下,JPA自动选择一个最适合底层数据库的主键生成策略。
可供选择的策略有:
《1》IDENTITY :表自增键字段(SqlServer对应策略,Oracle不支持这种方式)
《2》AUTO :JPA自动选择合适的策略,是默认选项(MySql对应策略)
《3》SEQUENCE :通过序列产生主键,通过@SequenceGenerator注解指定序列名(如Oracle的Sequence,MySql不支持这种方式)
《4》TABLE :通过表产生主键,使用该策略可以使应用更易于数据库移植。不同的JPA实现商生成的表名是不同的。
@Embeddedld或@IdClass
# 组合关键字
@Column
# 属性对应的表字段
三、实体Annotation--继承关系
对于继承的实体,在javax.persistence.InheritanceType定义了3种映射策略
【SINGLE_TABLE】:父子类都保存到同一个表中,通过字段进行区分。
【JOINED】:父子类相同的部分保存在同一个表中,不同的部分分开存放,通过表连接获取完整数据。
【TABLE_PER_CLASS】::每一个类对应自己的表(一般不推荐采用这种方式)。
四、实体Annotation--关联关系
@OneToOne
@OneToMany
@ManyToOne
@ManyToMany
【Address.java】
@Entity // 实体类注解
@Table(name="ACCP50NT_ADDRESS")
public class Address implements Serializable{
private Long id; // POJO属性
private String street;
private String city;
private String country;
public Address(){} // 默认构造方法
@Id // 主键
@GeneratedValue(Strategy = GenerationType.AUTO) // 主键生成器:AUTO--由系统选择生成策略; IDENTITY--使用标识列。
@Column(name = "AddressID") // 属性到字段的映射,缺省与属性同名
public Long getId(){
return id;
}
public void setId(Long id){
this.id = id;
}
......
}
- JPA实体注解(三)
- Hibernate,JPA注解(三)
- JPA:实体类注解配置
- JPA实体类中的注解
- JPA实体类中的注解
- JPA实体的常用注解
- hibernate反向工程生成带注解的实体(jpa)
- JPA复习(一)——实体类注解
- JPA注解详解三
- JPA注解详解(三)
- JPA注解详解(三)
- 使用JPA注解配置ORM实体类
- Eclipse 通过JPA自动生成注解实体
- Eclipse 通过JPA自动生成注解实体
- Eclipse 通过JPA自动生成注解实体
- Eclipse 通过JPA自动生成注解实体
- JPA 学习篇(三)简单实体映射和EntityManagerAPI
- JPA注解的使用,用于实体类的注解
- Oracle导入导出
- ListView+CursorAdapter+LoaderManger的配合使用
- 通过PowerShell卸载所有的SharePoint 2010 解决方案
- android 开源项目分类汇总
- 12 foreach 装箱拆箱 可变参数 枚举
- JPA实体注解(三)
- fmpeg 自定义IO中断 AVFormatContext::interrupt_callback ,AVIOInterruptCB具体处理方法
- Eclipse全键盘编码攻略之一——入门
- java.io.filenotfoundexception: the system cannot find the file specified
- C++ do while 0 的用法和意义
- pssh,pscp,pslurp使用实践
- UINavigationController详解(二)
- socket,HTTP,ASIHttpRequest的区别
- 二分图判定 nyoj1015(模板)