hibernate java.util.date 精度_hibernate中java.util.Date类型映射
在Hibernate中对于java.util.Date类型的映射为: java类型 Hibernate类型 Mysql类型 java.util.Date、java.sql.Date date DATE java.util.Date、java.sql.Time time TIME java.util.Date、java.sql.Timestamp timestamp TIMESTAMP 如果使用timestamp作为Date
在Hibernate中对于java.util.Date类型的映射为:
java类型 Hibernate类型 Mysql类型
java.util.Date、java.sql.Date date DATE
java.util.Date、java.sql.Time time TIME
java.util.Date、java.sql.Timestamp timestamp TIMESTAMP
如果使用timestamp作为Date类型映射时,具体代码如下:
Java代码
public class User {
private String userPK;
private String userID;
private String password;
private String nickname;
private boolean state;
private boolean role;
private Date registerDate;
private int points;
public String getUserPK() {
return userPK;
}
private void setUserPK(String userPK) {
this.userPK = userPK;
}
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public Date getRegisterDate() {
return registerDate;
}
public void setRegisterDate(Date registerDate) {
this.registerDate = registerDate;
}
public int getPoints() {
return points;
}
public void setPoints(int points) {
this.points = points;
}
public void setState(boolean state) {
this.state = state;
}
public boolean getState(){
return this.state;
}
public void setRole(boolean role) {
this.role = role;
}
public boolean getRole(){
return this.role;
}
}
映射代码:
Xml代码
hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
Java代码
User testUser = new User();
testUser.setRegisterDate(new Date);
session.save(testUser);
存储结束之后,由数据库中重新查询出此对象:
Java代码
User savedUser = session.load(User.class,id);
而此时
testUser.getRegisterDate.equals(savedUser.getRegisterDate)返回值为 false;
此时可发现test.getRegisterDate().class为java.util.Date, savedUser.getRegisterDate().class为java.sql.Timestamp。查看java的文档可知
java doc 写道
The Timestamp.equals(Object) method never returns true when passed an object that isn't an instance of java.sql.Timestamp, because the nanos component of a date is unknown. As a result, the Timestamp.equals(Object) method is not symmetric with respect to the java.util.Date.equals(Object) method.
也就是说Timestamp和Date类型并不能进行相等比较的。当然在程序中比较两个时间点 的相等性是不切合实际的,但如果一些特殊应用需要比较的话,可以使用其他方法解决。 例如:
Java代码
public void setRegisterDate(Date registerDate) {
this.registerDate = new Date(registerDate.getTime());
}
这样即可顺利转变类型及值了。但是Hibernate中并没有对java.util.Date类型进行很 好的映射,个人也觉得可以不采用Date类型记录时间,可适当考虑Calendar类型。
hibernate java.util.date 精度_hibernate中java.util.Date类型映射相关推荐
- java string转sql date_Java中的util.Date,sql.Date,sql.Time,String类型转换
今天总结一下工具类中Date类型. java.sql.Date,java.sql.Time,和java.sql.Timestamp(时间戳记)都是java.util.Date的子类. java.sql ...
- java小数丢失精度_Java中的小数运算与精度损失
float.double类型的问题 我们都知道,计算机是使用二进制存储数据的.而平常生活中,大多数情况下我们都是使用的十进制,因此计算机显示给我们看的内容大多数也是十进制的,这就使得很多时候数据需要在 ...
- java.util接口_Java 8中java.util.function包中的谓词和使用者接口
java.util接口 在上一篇文章中,我写了关于Function接口的内容 ,它是java.util.package的一部分. 我还提到了Predicate接口,它是同一包的一部分,在这篇文章中,我 ...
- linux java运行环境_linux(centos)中java运行环境_jdk安装与配置 | OPS技术联盟
系统版本 [root@iZwz95n2hxcdh4x6vicjmgZ ~]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core) ...
- java 可变 不可变_java中的不可变类型的探究
不可变类是指创建类的对象实例后,该实例的属性不能发生改变.常见的String就是不可变类.不可变类型的属性值不会发生改变,这在多线程编程的时候非常有用,不用担心对象的属性值被修改. 下面我们来看看如何 ...
- java float的精度_java中的float和double的精度问题
此文解释了为何float的范围比int大(同样4字节),但有些int是float无法正确表达的(精度丢失) java中的float和double的精度问题 1.背景知识 在java中没有细讲,只是讲了 ...
- java 提取违反顺序_oracle 中 java.sql.SQLException: ORA-01002: 提取违反顺序
在一个流程中设置了一个机器人节点,目的是:审批结束后,通过update语句,将表单中的一些内容更新到数据库person_info_t的表中,并将更新前后的值记录到新表info_update_recor ...
- java 导出mdb文件_Java中Java生成mdb文件工具类
package com.util; /** * Java生成mdb文件[MS Access文件] * 1. 在ClassPath下存一个空的blank.mdb. (也就是在你的项目中包含一个空白的 ...
- was java heap space_实战项目中Java heap space错误的解决
部标GPS通讯系统在上线之后,经过不断调试,终于稳定运行一段时间,后来又遇到了Java heap space错误异常!日志如下: 说明系统中有未释放的对象.如何找出这些未释放对象以及监控JVM堆内存, ...
- java比较时间戳大小_JAVA中两个String类型的时间戳怎么样比较大小?
1.从数据库里面获得的时间戳是String类型的,要与当前时间比较,判断登陆是否过期 生成一long类型的当前时间,把String类型强制转换成long类型报错,代码如下: long currentT ...
最新文章
- 作为产品经理,你需要了解的基本算法知识和实操
- android 窗口缩放,Android界面整体缩放
- 阿里云Redis开发规范
- gin context和官方context_gin 源码阅读(一) -- 启动
- Asp.net常用技巧
- 太惨了!卖一个月不如小米卖一天,手机一哥仍不甘心
- 但是的近义词是什么,怎么用但是造句?
- Web前端开发之“常见模块你真的很了解吗?”
- docker--删除container和image
- Android 原生工程接入mPaas框架
- 计算机及移动设备管理软件,终端管理软件
- SpringBoot+POI方式导出excel【加水印】
- java工具类_16 个超级实用的 Java 工具类
- CYGWIN安装方法
- autojs切换输入法
- java+s2sh+mysql报刊订阅系统系统
- H2O的机器学习框架的数据分析应用
- Tikhonov regularization 吉洪诺夫 正则化
- 反常识—股票暴跌收益会更高
- php大道至简之框架
热门文章
- 【元胞自动机】基于matlab保守策略元胞自动机三车道(不开放辅路,软件园影响)交通流模型【含Matlab源码 1294期】
- 【VRP】基于matlab遗传算法求解多车辆路径规划问题【含Matlab源码 1249期】
- 【图像加密】基于matlab GUI混沌系统灰色图像加密解密(带面板)【含Matlab源码 1240期】
- 【房价预测】基于matlab Elman神经网络房价预测【含Matlab源码 589期】
- 【滤波器】基于matlab GUI低通+带通+高通FIR与IIR滤波器设计【含Matlab源码 360期】
- java小数正负数据类型_Java - day001 - 8种基本数据类型
- 变形金刚图纸_变形金刚救援
- pgm图像缩小C语言,C++将二进制(P5)图像转换为ascii(P2)图像(.pgm)
- wincc几个常用c语言编程软件,WINCC几个常用C语言编程
- LeetCode 1——两数之和