JPA或Hibernate中的

摘要:
在hibernate中,createQuery和createSQLQuery的区别在于前者使用hql语句进行查询,后者可以使用sql语句进行查询。突然发现createSQLQuery有这样一种方法可以直接转换对象Queryquery=session,这不是很方便。创建SQL查询添加实体;XXXXXXX表示由hibernate生成的bean对象,即从数据表映射的bean。呵呵,多多注意冬眠的各种对象方法的使用。

JPA执行原生SQL截断Char类型问题

在JPA的API中执行原生SQL:EntityManager.createNativeQuery(String sqlString);传入参数是原生SQL语句,返回SQL对象。

如果oracle数据库中某个字段定义的是char类型,比方说是char[2],当使用EntityManager.createNativeQuery(String sql);去查询这些值的时候,发现返回的结果集中只要数据库中是char类型的,都只返回一个字符。

原因:hibernate将char 类型的字段转化成了character。 因此造成查询结果不对。
解决办法:

【1】只需要在SQL语句中把数据库中是Char类型字段,加个trim函数处理就可以了。

【2】用EntityManager.createNativeQuery(String sqlString, Class resultClass)方法替换成以下方法即可:EntityManager.createNativeQuery(String sqlString);其中Class resultClass是实体类的全名称,包括所在的包名称。

hibernate中createQuery与createSQLQuery两者区别是:
前者用的hql语句进行查询,后者可以用sql语句查询
前者以hibernate生成的Bean为对象装入list返回
后者则是以对象数组进行存储
所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便
突然发现createSQLQuery有这样一个方法可以直接转换对象
Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);
XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。
呵呵以后多注意,还是时不时的要看看hibernate各个对象方法的使用。

分页:

Hibernate中的分页语句可以这么写

session = HibernateUtils.getSession();

session.beginTransaction();

Query query = session.createQuery("from User");

query.setFirstResult(0);//从第一条记录开始

query.setMaxResults(4);//取出四条记录

List userList = query.list();

免责声明:文章转载自《JPA或Hibernate中的》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Server中的锁 详解 nolock,rowlock,tablock,xlock,paglock初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C语言中access、_mkdir、sprintf、 fopen、fwrite函数

int access(const char *filename, intamode); amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。 这个函数还可以检查其它文件属性:06 检查读写权限04 检查读权限02 检查写权限01 检查执行权限00 检查文件的存在性而这个就算这个文件没有读权限,也可以判断这个...

Hibernate原理、配置及单表操作

一、Hibernate的配置文档 其中:hbm2ddl.auto中的create表示每次修改数据的时候都会删除原有的表,生成新的表结构,原有的数据不再存在;update表示在原有数据的基础上进行更新,不会删除原有的数据。 hibernate.default_schema属性设置成数据库的名称,将数据库设置为默认数据库,这样,SQL语句上都会加上默认数据库...

plsql和tsql常用函数比对

http://www.jb51.net/list/list_154_1.htm 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from...

Arduino常用的数据类型以及转换

常用的数据类型有布尔类型、字符型、字节型、整型、无符号整型、长整型、无符号长整型、浮点型、双精度浮点型等 布尔类型bollean: 布尔值是一种逻辑值,其结果只能为真(true)或者假(false)。布尔值可以用来进行计算,最常用的布尔运算符是与运算(&&)、或运算(||)和非运算(!)。 字符型char: 字符型(char)变量可以用来...

十天学会单片机Day1点亮数码管(数码管、外部中断、定时器中断)

1.引脚定义 P3口各引脚第二功能定义 标号 引脚 第二功能 说明 P3.0 10 RXD 串行输入口 P3.1 11 TXD 串行输出口 P3.2 12 INT0(上划线) 外部中断0 P3.3 13 INT1(上划线) 外部中断1 P3.4 14 T0 定时器/计数器0 外部输入端 P3.5 15 T1 定时器/计数器1...

SpringBoot整合SpringSecurity,SESSION 并发管理,同账号只允许登录一次

重写了UsernamePasswordAuthenticationFilter,里面继承AbstractAuthenticationProcessingFilter,这个类里面的session认证策略,是一个空方法,貌似RememberMe也是. public abstract class AbstractAuthenticationProcessingF...