JPA字段映射(uuid,日期,枚举,@Lob)
转:http://www.cnblogs.com/tazi/archive/2012/01/04/2311588.html
主键:
JPA主键的生成策略不像Hibernate那么丰富。
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@GeneratedValue的属性strategy指定生成策略,
IDENTITY(自增长方式,如mysql)
SEQUENCE (序列方式,如oracle)
TABLE (表方式,该方式便于数据库移植,但效率不高,主键的值是从这个表中取得的。)
AUTO (自动方式,该方式会把主键生成交给JPA的实现者来决定,Hibernate会根据底层数据库选择合适的方式,如果用这种方式,可以不写,默认如此)
使用Hibernate提供的uuid方式(用于分布式应用,根据ip地址,JVM启动时间,系统时间和一个计数器值(在当前的JVM中惟一)产生32位长度的字符串)
@Entity
@GenericGenerator(name="uuid_s",strategy="uuid")
public class Person implements java.io.Serializable{
@Id
@GeneratedValue(generator="uuid_s") @Column(length=32)
private String id; //必须Sring
//…
}
oracle测试结果:
SQL> desc person;
名称 是否为空? 类型
----------------------------------------- -------- ---------------------------
ID NOT NULL VARCHAR2(32 CHAR)
BIRTH TIMESTAMP(6)
GENDER NUMBER(10)
NAME NOT NULL VARCHAR2(10 CHAR)
SQL> select * from person;
ID
-------------------------------------------------------------------------------
BIRTH
---------------------------------------------------------------------------
GENDER NAME
---------- --------------------
8a8a4dcf349eac5901349eac5d910001
02-1月 -12 09.47.03.339000 下午
0 tazi
日期类型:
可以直接使用java.util.Date
2011-12-12 在hibernate配置文件中可以用type=”date”
2011-12-12 12:23:12 可以用type=”datestam”(?)
12:23:12可以用type=”time”
在JPA注解方式可以用
@Temporal(TemporalType.DATE) //还有TIME,TIMESTAMP
private Date birth;
枚举类型:
男和女可以用枚举作为实体Bean的属性值类型,那么枚举值保存到数据库后使用枚举值使用索引值(0开始)还是字符值呢。注意保存枚举值时加上非空约束,最好加上长度。
面向对象的方式考虑问题,怎样设置默认值,直接在类的属性里设值。
package com.domin;
public enum Gender {
MAN,WOMAN
}
@Enumerated(EnumType.STRING) @Column(length=5,nullable=true) //ORDINAL为索引方式
private Gender gender=Gender.MAN;//设置默认值
(2)可以在Byte[]类型的字段上加@Lob
mysql中对应longblob
oracle中不能使用byte[]字段加@Lob的方式直接映射
大数据字段最好再加上延迟加载
@Lob @Basic(fetch=FetchType.LAZY)
private Byte[] file;
JPA字段映射(uuid,日期,枚举,@Lob)的更多相关文章
- SpringData JPA进阶查询—JPQL/原生SQL查询、分页处理、部分字段映射查询
上一篇介绍了入门基础篇SpringDataJPA访问数据库.本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询.部分字段映射.分页等.本文尽量以简单的建模与代码进行展 ...
- 关于hibernate字段映射@colunm出现的问题以及jpa驼峰大写转_小写的问题探究
关于hibernate字段映射@colunm出现的问题以及jpa驼峰大写转_小写的问题探究2018年04月24日 15:47:26 守望dfdfdf 阅读数:735 标签: @colunmhibern ...
- hibernate字段映射枚举类型
上一篇介绍了mybatis字段映射枚举类型,这一篇给大家介绍一下hibernate字段怎么去映射枚举类型的(这只是一种参考方式,映射方法还有很多种). 还是以上篇sku表为例,sku表里一个statu ...
- mybatis字段映射枚举类型
在底层使用mybatis的时候,我们可能会需要把表里的字段映射到Java里面的枚举类,现总结下工作中的用法: sku表里一个status_type字段为int类型.(这里是postgresql的脚本) ...
- 【JPA】映射
[JPA]映射 转载:https://www.cnblogs.com/yangchongxing/p/10120447.html 1.@Entity注解指定实体类 2.@Id注解指定实体主键 3.@T ...
- [hibernate]基本值类型映射之日期类型
hibernate基本值类型映射中日期类型支持date,time,timestamp这三个选项,其中 date:对应数据库中的date类型,表示只显示日期 time:对应数据库中的time类型,表示只 ...
- 无废话ExtJs 入门教程九[数字字段:NumberField、隐藏字段Hidden、日期字段:DataFiedl]
无废话ExtJs 入门教程九[数字字段:NumberField.隐藏字段Hidden.日期字段:DataFiedl] extjs技术交流,欢迎加群(201926085) 继上第六节内容,我们在表单里加 ...
- MySQL字段之集合(set)枚举(enum)
MySQL字段之集合(set)枚举(enum) (2008-12-23 13:51:23) 标签:it 分类:MySQL 集合 SET mysql> create table jihe(f1 ...
- Model Builder中Table2Table中字段映射的问题
ArcGIS10中使用过程中,Bug不少.尽管有了SP3,但模型耦合的深层次的应用中还是错误不少.目前只是遇到一个,利用躲避的方法解决一个.例如,从NetCDF中抽出的数据表,必须在内存和数据库中都存 ...
随机推荐
- ListView OnItemClickListener position 索引不正确
在使用ListView添加如下代码时 listview.setOnItemClickListener(new OnItemClickListener() { @Override public void ...
- Web安全测试之XSS(跨站脚本攻击)
XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞.指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的 ...
- 利用ajax从txt读取数据
html代码: <div id="news"></div> txt: [ {"id":"1", "news ...
- Resizable(调整大小)组件
一.加载方式 //class 加载方式 <div id="rr" class="easyui-resizable" data-options=" ...
- 最全C语言笔记回顾
- for 迭代器遍历list map
1.map与list区别 list是对象集合,允许对象重复. map是键值对的集合,不允许key重复 2.list 与 list<类型> list不限制类型,也就是object类型 ...
- poj1961 kmp
题目大意,求这个字符串到i为止有多少个循环串: int k = i-next[i]; if((i+1)%k == 0 && (i+1)!= k) printf("%d %d\ ...
- 线段树hdu1754
#include<iostream>#include<stdio.h>using namespace std;const int maxa=200005;int val[max ...
- linux int to string 方法
最近从windows 移植程序的时候发现to_string()函数在linux 中不能用,网上找了几种方法,觉得使用stringstream对象来实现类型转化比较好一点. 你只需在你工程中加入下面的t ...
- js版iphone通讯录分组列表效果
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...