jpa2.0以上findOne和getOne的区别

/**
 * Returns a single entity matching the given {@link Example} or {@literal null} if none was found.
 *
 * @param example must not be {@literal null}.
 * @return a single entity matching the given {@link Example} or {@link Optional#empty()} if none was found.
 * @throws org.springframework.dao.IncorrectResultSizeDataAccessException if the Example yields more than one result.
 */
<S extends T> Optional<S> findOne(Example<S> example);

/**
 * Returns a reference to the entity with the given identifier.
 *
 * @param id must not be {@literal null}.
 * @return a reference to the entity with the given identifier.
 * @see EntityManager#getReference(Class, Object)
 * @throws javax.persistence.EntityNotFoundException if no entity exists for given {@code id}.
 */
T getOne(ID id);

findone:返回实体的optional对象

getone:返回实体的引用,代理对象

实体转json的过程中会出错,用debug查看实体其实是空,数据是放在代理对象中的,但jackson将实体转json没有拿到代理对象,然后产生以下错误,这时候json转换失败再导致输出流报错。

getOne示例:

原文地址:https://www.cnblogs.com/yinwutuan/p/9516167.html

时间: 2024-08-11 04:45:05

jpa2.0以上findOne和getOne的区别的相关文章

spring-data-jpa中findOne与getOne的区别

项目中用到了spring-data-jpa,今天在写一个update方法的时候报了个空指针,看了看是因为一个对象中的关联没有取出来,我用的是getOne取得这个对象,加断点看以一下这个对象是个hibernate的代理对象,而不是实体,里面基本没有值. 然后我又换成findOne试了一下,断点查看这个取出来的对象,这个对象是实体,关联也有. findOne与getOne的注释中也有些帮助 /**      * Retrieves an entity by its id.      *       

MVC ---- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); //EF5.0的写法 db.Entry<T>(entity).State = EntityState.Added; //下面的写法统一 db.SaveChanges(); return entity; } public bool UpdateEntity(T

PHP教程 php中0与空 Null false的区别

PHP教程php中0与空 Null false的区别 原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的,其中这个结构体有个zend_uchar type;这样的成员变量,他是用来保存变量的类型的,而空字符串的类型是string,NULL的类型是NULL,false是boolean. 这一点可以用echo gettype('');和echo gettype(NULL);来打印看看!而===运算符是不单比较值,还有比较类型的,所以第三个为false!

J-Query开发锦集(0):JSON.parse()和JSON.stringify()区别

项目中我们经常会使用JSON字符串转换,而且很频繁.所以总结如下,很简单的代码. 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>JSON.parse()和JSON.stringify()区别</title> 6 <script type="text/javascrip

rs(0)与rs(&quot;字段名&quot;)的区别

rs(0)与rs("字段名")的区别 注意:rs是RecordSet对象 前者是按sqlyu语句读出来的记录急的先后顺序命名的, rs(0)就是你select出来的第一个记录集. select   id,name,pwd   from   table rs(0)=rs("id") rs(1)=rs("name") rs(2)=rs("pwd") select   id,username,userpsw   form   ...

EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

EF4.0和EF5.0增删改查的写法区别 (原文) public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); //EF5.0的写法 db.Entry<T>(entity).State = EntityState.Added; //下面的写法统一 db.SaveChanges(); return entity; } public bool UpdateEnti

exit(0),exit(1),exit(-1)的区别?

exit(0),exit(1),exit(-1)的区别? 进程结束,返回给系统的返回值不同而已. 如果你的进程为 user, 则执行./usr后,执行echo $? 可以看到你的进程的返回值,就是你在程序里设置的值,如exit(0),返回0 exit(0) 表示程序正常, exit(1)/exit(-1)表示程序异常退出,至于是1还是-1个人习惯,但是正常情况下应该用 EXIT_SUCCESS表示正常,EXIT_FAILURE表示失败,定义在stdio.h里. 0 正常 1,-1异常 这是习惯这

基于Hibernate的JPA2.0快速构建

前言 尽管现在开源的框架已经非常优秀,但是缺乏统一的标准有违软件开源的初衷,因此Sun公司的JCP组织发布了Java EE的JPA标准,并统一ORM规则.JPQL查询语言.子查询.高级查询和批量处理等操作.推出JPA规范有两点原因:一是,希望简化现有的SE和EE工作,特别是EJB3.0的推出,使得企业级项目的开发推向更高的层次(EJB3.0已经非常优秀,但是由于时间的问题,并且Spring已经占领了市场):二是,希望业界有一个统一的标准,就像当年JDBC推出一样,只实现接口,其余API的实现交给

border:0跟border:none;之间的区别

两个之间的区别:①理论上border:none的时候对于border的样式例如:border,border-color,border-img等都不再渲染,即不占内存,但是border:0的时候依然占用内存,这个没办法展示,就是理论上而已,所以尽量使用border:none:②但是,当使用border:none的时候,对于最新的浏览器这两个在表象上是没有什么区别的,但是别忘了,还有万恶的  IE6,此时input跟button在IE6中会依然显示边框.解决办法是:添加背景,例如:背景颜色就可以消失