菜鸟之JPA二
来源:互联网 发布:分布式数据库 pec模块 编辑:程序博客网 时间:2024/06/04 18:26
jpa简介
3、jpa实体关系映射
上篇写到了实体的关系映射今天就从使用基本注解的实体开始
首先我们创建一个User实体,其注解如下:
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity(name = "t_user")
public class User implements Serializable{
@Id
private long id;
@Column(name="t_usernmae")
private String username;
private String password;
@Temporal(TemporalType.DATE)
private Date birthday;
@Column(name="t_age")
private int age;
........
省略get set方法
}
综上可以很明显的知道如何给一个实体加注解,其实就跟hibernate的配置类似,只是换了种形式,为了方便,看起来
直观,这里的注解都写到了字段上,按道理是应该写到get方法上的。
例: private String password;不加注解,字段也会指定映射到表,默认列明为字段名
下面就来说说继承关系
3.2继承关系
最简单的基本注解
定义一个BaseEntity实体
@MappedSuperclass
public abstract class BaseEntity implements Serializable{
private static final long serialVersionUID = 5003093721586047440L;
@Id
@GeneratedValue
private Long id;
@Version
private long version;
@Temporal(TemporalType.TIMESTAMP)
private Date createdDate = new Date();
@Temporal(TemporalType.TIMESTAMP)
private Date lastModifiedDate;
..............
省略get set
}
再写一个基本的User实体
@Entity(name="t_user")
public class User extends BaseEntity{
private static final long serialVersionUID = 1045289538678669205L;
private String username;
private String password;
@Temporal(TemporalType.DATE)
private Date birthday;
@Column(name="t_age")
private int age;
..............
}
在父类上加上@MappedSuperclass 声明为抽象类,然后子类继承,这样在数据库表中,t_user除了在User中声明的字段外还会加上继承父类的字段。JPA 采用多种方法来支持实体继承,这只是比较简单的一种,详情请等下篇分解。
更多学习资料
- 菜鸟之JPA二
- 菜鸟之jpa三
- Spring Boot 之jpa(二)数据库
- ARM菜鸟成长记--之二
- java菜鸟之路(二)
- 菜鸟--Adroid学习之法律咨询客户端二
- 菜鸟面试之路(二)
- Java-菜鸟学习之路(二)
- IOS 菜鸟笔记 之 项目 二
- 机器学习sklearn之菜鸟入门二
- 菜鸟springboot学习之旅二
- JPA 菜鸟教程 异常 集锦
- Spring2.5+Struts1.3.8+JPA(Hibernate实现)整合之二
- Spring2.5+Struts2+Jpa(Hibernate实现)整合之二
- 一步步学习 Spring Data 系列之JPA(二)
- java菜鸟回炉之旅之二----认识java
- 菜鸟菜鸟菜鸟菜鸟编程之路
- JPA 菜鸟教程 19 jpa uuid主键生成策略
- android shape 常用到属性的设置
- LeetCode:Two Sum
- C++解析JSON的好文章
- CentOS安装Graphviz(使用EPEL)
- java压缩文件夹/文件
- 菜鸟之JPA二
- 关于JAVA项目中CLASSPATH路径详解
- 矩形的并的面积
- Servlet请求转发与包含
- 我希望在软件开发生涯初期就知道的 4 件事
- 2.4 Picking Values with UIPickerView
- 简单逆序打印
- 数据库连接池
- 使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务