JPA学习记录四(了解部分注解并搭建出多类型的数据字段)
来源:互联网 发布:mac jdk1.6下载 编辑:程序博客网 时间:2024/06/07 00:20
一:首先分析数据表的字段类型
1.id 主键,自增策略设置
2.name 长度为10,不能为空,在数据表列名为personName
3.birthday 类型为Date ,在数据表中时间存放格式为Date
4.gender 类型为枚举类型,在数据表存储的值为枚举值,且默认值为MAN
5.info 类型为String,在数据表类型为大文本类型
6.file 类型为字节类型,在数据表中以二进制存储,并且在不需要时,不进行加载,防止占内存
7.imagepath 不默认放进数据表中
二.创建person类
package cn.zl.jpa.domain;import java.util.Date;import javax.persistence.Basic;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.EnumType;import javax.persistence.Enumerated;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Lob;import javax.persistence.Table;import javax.persistence.Temporal;import javax.persistence.TemporalType;import javax.persistence.Transient;@Entity@Table(name="person")public class Person {private Integer id;private String name;private Date birthday;//1987-12-10private Gender gender=Gender.MAN;//设置默认值private String info; public Byte[] file; private String imagepath; @Transient//不将这个属性放入数据库 public String getImagepath() {return imagepath;}public void setImagepath(String imagepath) {this.imagepath = imagepath;}@Lob//存放二进制类型@Basic(fetch=FetchType.LAZY)//当不访问这个属性时,就不从数据库中装载进内存,防止数据太大,占内存public Byte[] getFile() {return file;}public void setFile(Byte[] file) {this.file = file;}@Lob//这个注解是为了生成可以存放大文本的数据public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}@Enumerated(EnumType.STRING)//枚举类型,保存字符串进数据库,ORDINAL是保存索引值进数据库(0,1)@Column(length=5,nullable=false)//保存枚举类型不能为空,枚举类型中最大长度为5public Gender getGender() {return gender;}public void setGender(Gender gender) {this.gender = gender;}@Temporal(TemporalType.DATE)//选择时间的格式//@Column(nullable=false)public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public Person() {}public Person(String name) {this.name = name;}@Id @GeneratedValue(strategy = GenerationType.AUTO)public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@Column(length=10,nullable=false,name="personName")public String getName() {return name;}public void setName(String name) {this.name = name;}}
枚举类型类编写:
package cn.zl.jpa.domain;public enum Gender {MAN,WOMEN}
三.测试编写
package junit.test;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import org.junit.Test;import cn.zl.jpa.domain.Person;public class PersonTest {@Testpublic void save() { EntityManagerFactory factory = Persistence.createEntityManagerFactory("persistUnitName"); EntityManager em = factory.createEntityManager(); em.getTransaction().begin(); em.persist(new Person("哈哈"));//需要在person中定义构造函数,一个无参数的和一个有参数的 em.getTransaction().commit(); em.close(); factory.close();}}
0 0
- JPA学习记录四(了解部分注解并搭建出多类型的数据字段)
- JPA学习记录二(搭建一个JPA+hibernate实例)
- JPA使用注解 设定字段类型为TEXT类型
- Spring data jpa查询多个部分字段的方法
- sql 如何提取某一字段记录的部分数据
- mysql 查询某个字段有重复记录,并显示出具体的记录信息
- JPA学习(四)
- JPA学习 注解的使用
- JPA注解(这里包含sequence类型的)
- JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放
- JPA注解详解(四)
- Oracle中在已有数据的表中更改字段类型(四步)
- http 部分头字段的注解
- 从字符串类型中读取出不在datetime类型数据范围内的记录
- JavaEE – JPA(6):ORM的核心注解 – 基础类型以及嵌套类型
- JavaEE – JPA(5):ORM的核心注解 – 基础类型以及嵌套类型
- JPA注解:根据实体生成数据表和字段的注释(正向工程)
- JPA查询实体部分字段
- 【JavaSE基础】------IO流【一】
- docker部署Nginx
- LeetCode 199. Binary Tree Right Side View
- JAVA-面向对象
- 设计模式--策略模式
- JPA学习记录四(了解部分注解并搭建出多类型的数据字段)
- SumblimeText 3 + NodeJS环境配置 [重启自动杀进程(kill)]
- Java并发编程:volatile关键字解析
- Kafka-[3]-KafkaStream
- Automatic Judge
- 毕业设计那点事 — 源码安装Nginx
- paint 中的方法
- python操作txt
- Linux修改时间