`
周一Monday
  • 浏览: 342442 次
  • 来自: 北京
社区版块
存档分类
最新评论

JPA常用注解

JPA 
阅读更多

@Entity
作用:设置一个类为实体类

@Entity
public class User {

}

 

@Table
作用:设置实体类对应的表,常与@Entity一起使用
参数:name制定表名,不写的话,为实体类的类名

@Entity
@Table(name = "tbl_user")
public class User {

}

@Id
作用:设置对象标识符

@Id
private Integer id;

@GeneratedValue
作用:设置标识符的生成策略,常与@Id一起使用
参数:strategy指定具体的生成策略

 

方式一:@GeneratedValue(strategy=GenerationType.AUTO) 也是默认策略, 即写成@GeneratedValue也可。
类似于hibernate的native策略,生成方式取决于底层的数据库。

方式二:@GeneratedValue(strategy = GenerationType.IDENTITY)指定“自动增长”策略,适用于MySQL。

方式三:@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_tbl_user")指定“序列”策略,使用于Oracle。
其中generator表示生成器的名字。
而且还要指定@SequenceGenerator(name = "seq_tbl_user", sequenceName = "seq_tbl_user", allocationSize = 1)注解配合使用
其中name指定生成器的名字(与generator的值一样),sequenceName指定数据库中定义序列的名字,allocationSize指定序列每次增长1


方式四:若不指定@GeneratedValue注解,则要手动提供Id值。user.setId();

@Id
	/** 自增 用于MySQL */
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	
	/** 序列 用于Oracle */
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_tbl_user")
	@SequenceGenerator(name = "seq_tbl_user", sequenceName = "seq_tbl_user", allocationSize = 1)
	
	/** 默认的 等同于@GeneratedValue */
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer id;

@Column
作用:设置列

 

参数:
name:指定列名
unique:指定唯一约束
nullable:指定是否允许为空
length:长度

 

@Column(name = "user_name", length = 255, nullable = true, unique = true)
private String name;

设置默认值:

@Column(name = "user_name")
private String name = "monday";

注意:若不写@Column注解,则一切使用@Column注解的默认值。

 

@Temporal
作用:设置日期时间

 

方式一:@Temporal(TemporalType.DATE)映射为日期 // birthday date (只有日期)
方式二:@Temporal(TemporalType.TIME)映射为日期 // birthday time (是有时间)
方式三:@Temporal(TemporalType.TIMESTAMP)映射为日期 //birthday datetime (日期+时间)

 

@Temporal(TemporalType.DATE)
private Date birthday;

@Lob
作用:设置大数据类型

 

方式一:

@Lob
private String text;   //text longtext

方式二:

@Lob
private byte[] image;	// image longblob

@Enumerated
作用:设置枚举类型

 

方式一:

/** 保存字符串到数据库 */
	@Enumerated(EnumType.STRING)
	private Role role;

方式二:

/** 保存整数到数据库 */
	@Enumerated(EnumType.ORDINAL)
	private Role role;

上面定义的枚举:Role

/** 角色 */
public enum Role {
	游客, 会员, 管理员
}

使用:

User user = new User();
user.setRole(Role.管理员);

@Transient
作用:修饰的字段不会被持久化

@Transient
private String temp; 

这样也可以:

private transient String temp;

以上都这都是比较常用的。

 

 

以上的注解全部定义在javax.persistence下面。

 

 

 

 

 

 

分享到:
评论
1 楼 sjzcmlt 2016-03-18  
感谢,很实用

相关推荐

    JPA 注解参考文档

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。...这个文档是针对JPA常用注解的一些说明。

    JPA注解参考文档

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。...这个文档是针对JPA常用注解的一些说明。

    jpa常用标注

    jpa 基础 常用 标注 注解,一些常用注解 的说明,更好的jpa入门。

    JPA框架新技术: 注解

    JDK1.6的新特性: 注解 其中介绍了JPA框架中的常用注解

    Spring常用注解.xmind

    Spring 常用注解整理,分类:创建对象;注入数据;范围;全局异常;生命周期;新注解;JPA;扩展原理等注解类型。

    Spring Data JPA从入门到精通

    'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解、JpaRepository扩展详解、JPA的MVC扩展REST支持、DataSource的配置、乐观...

    优秀实践分享 Spring Data JPA2

    JPA 方法名常用查询 JPA 使用@Query注解实现JPQL和本地自定义查询 JPA API 条件查询 (子查询,多表连接查询) JPA结合QueryDSL轻松完成复杂查询(自连接,多表连接查询) 参与文档: Pro JPA2中文版:精通Java持久化API ...

    JPA学习笔记

    jpa入门级教程,有jpa基础,环境搭建,常用注解,jpa映射,以及jpql介绍和常见异常.

    Spring Boot最常用的30个注解.docx

    详细介绍了Spring Boot最常用的30个注解,包含概念、原理、示例 Spring Boot最常用的30个注解 一、 @SpringBootApplication 二、 Spring Bean 相关 1 @Controller 2 @Service 3 @Repository 4 @Component 5 @Bean 6 ...

    Spring Data JPA 106精讲

    Spring Data 是 Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系...3:详解Spring Data JPA常用接口 4:详解Spring Data JPA各种查询方式 5:详解Spring Data JPA在web方面的用法 具体内容,可以参考大纲:

    Java EE常用框架.xmind

    Java EE常用框架 WebService 介绍 基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用 术语 XML. Extensible Markup Language -扩展性标记语言 WSDL – ...

    Spring高级之注解驱动开发视频教程

    n 基础应用-常用注解使用场景介绍及入门 n 高级特性-自定义BeanNameGenerator n 高级特性-自定义TypeFilter n 高级特性-ImportSelector和ImportBeanDefinitionRegistrar的分析 n 高级特性-自定义ImportSelector n ...

    Hibernate注解

    * @content ejb3注解的API定义在javax.persistence.*包里面。 * * 注释说明: * @Entity —— 将一个类声明为一个实体bean(即一个持久化POJO类) * @Id —— 注解声明了该实体bean的标识属性(对应表中的主键)。 * ...

    easyjdbc-spring-boot-starter:easyjdbc-spring-boot-starter在easyjdbc之上进行了一些自动spring boot配置

    easyjdbc-spring-boot-startereasyjdbc-spring-boot-starter,支持部分常用的JPA注解,使得经过注解的实体可以像Hibernate,jpa一样进行增、删、改和获取。SQL构造工具、链式API等让查询操作更为灵活。动态实体映射...

    springboot 整合jpa框架和querydsl框架,实现多数据源数据增删改查.zip

    2,使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值...

    springboot学习思维笔记.xmind

    Spring MVC的常用注解 @Controller @RequestMapping @ResponseBody @RequestBody @PathVariable @RestController Spring MVC的基本配置 静态资源映射 拦截器配置 @ControllerAdivce ...

    springBootDemo

    常用标签汇总 项目源码 JPA 和 Thymeleaf 实践 多环境配置 添加Servlet支持 效果图 项目源码 使用Swagger2构建RESTful API 文档 RESTful API设计准则 swagger注解总结 快速上手 项目源码 Spring Boot ...

    spring-intro:Spring 框架简介,超过 10 节课程

    常用注解实践示例、问答S02 - 依赖注入Spring @Component 模型DI 类型 - 构造函数、setter、p 和 c 命名空间Bean 作用域实践示例、问答S03 - 数据访问 - 第一部分数据源绑定,连接池配置JDBCTemplate 介绍工具 - ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    4.3 Spring MVC 的常用注解 82 4.3.1 点睛 82 4.3.2 示例 83 4.4 Spring MVC 基本配置 87 4.4.1 静态资源映射 88 4.4.2 拦截器配置 89 4.4.3 @ControllerAdvice 91 4.4.4 其他配置 94 4.5 Spring MVC 的高级配置 98 ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    4.3 Spring MVC 的常用注解 82 4.3.1 点睛 82 4.3.2 示例 83 4.4 Spring MVC 基本配置 87 4.4.1 静态资源映射 88 4.4.2 拦截器配置 89 4.4.3 @ControllerAdvice 91 4.4.4 其他配置 94 4.5 Spring MVC 的高级配置 98 ...

Global site tag (gtag.js) - Google Analytics