JPA EntityManager 获取关联对象

news/2024/4/30 8:39:17/文章来源:https://blog.csdn.net/hanjun0612/article/details/127285606

今天尝试了几种方式,来获取关联对象。

关联对象,使用的  

@OneToMany(fetch=FetchType.EAGER)

下面给一下总结:

一 Example

毫无疑问,很有信心,Example可以关联到对象。

事实也是这样。

但是Example好像只有and关系。这有点变扭。

@AutowiredBoTruckdetailDao dao;@Testpublic void testExample(){BoTruckdetail boTruckdetail=new BoTruckdetail();boTruckdetail.setTruckOrderUUID("9a1f0275-49dc-11ed-a186-c81f66e74320");Example<BoTruckdetail> example=Example.of(boTruckdetail);List<BoTruckdetail> list = dao.findAll(example);System.out.println(list.size());}

二 EntityManager 

也可以获取到,而且很灵活(我后来用的这种)

很棒,获取到了,sql也可以自定义。

不过有一个坑,第三种同样使用的EntityManager,就无法获取,下面会说

@Testpublic void testSql(){EntityManager em=boTruckdetailService.getEntityManager();String sql="select * from bo_truckdetail";Query query=em.createNativeQuery(sql,BoTruckdetail.class);//aliasToBean 无法获取关联对象//query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(destType));List list1 = query.getResultList();System.out.println(list1.size());}

 

三 EntityManager (Transformers.aliasToBean)

通过Transformers.aliasToBean 转换的模型,无法获取到

应该是后期映射后,被过滤掉了。这个有点坑。

@Testpublic void testSql1(){EntityManager em=boTruckdetailService.getEntityManager();String sql="select * from bo_truckdetail";Query query=em.createNativeQuery(sql);//aliasToBean 无法获取关联对象query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(BoTruckdetail.class));List list1 = query.getResultList();System.out.println(list1.size());}

 

四 @Query注解

同样很有信心,肯定可以。

缺点就是sql没办法动态传递,

参数可以通过 ifnull来处理,但是整个sql的动态无能为力。

 

//dao代码
@Query(value = "select * from bo_truckdetail",nativeQuery = true)List<BoTruckdetail> findAllData();//调用
@Testpublic void testQuery(){List<BoTruckdetail> list2=boTruckdetailService.test2();System.out.println(list2.size());}

当然,还有其他方法CriteriaQuery,这个我感觉太麻烦了,就不赘述了。

总结

Example :可以关联对象,但是语法上只有And

EntityManager :可以关联对象,语法灵活。

EntityManager(Transformers.aliasToBean) :无法关联对象,语法灵活。

@Query注解 :可以关联对象,sql无法动态传递

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_22388.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公众号网课题库系统-轻易获取查题接口

公众号网课题库系统-轻易获取查题接口 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击…

Mindquantum实现变分量子奇异值分解

论文题目&#xff1a;Variational Quantum Singular Value Deposition(VQSVD) 项目介绍 复现过程 案例1&#xff1a;分解随机生成的8*8复数矩阵 先引入需要使用的包&#xff1a; import os os.environ[OMP_NUM_THREADS] 1​ import mindspore as ms from mindquantum impo…

Transformer解读之:Transformer 中的 Attention 机制

encoder 的 attention 场景&#xff1a;现在要训练的内容是 I love my dog -> 我喜欢我的狗那么在 encoder 端的输入是&#xff1a; I love my dog&#xff1b;假设经过 embedding 和位置编码后&#xff0c;I love my dog 这句话肯定已经变成了一个向量&#xff0c;但是在这…

一文彻底搞清Linux中块设备驱动的深层次原理和编写方法

【摘要】本文主要讲述了在Linux环境下的块设备驱动的常见数据结构和内核接口&#xff0c;并以一个实际例子讲述了块设备驱动的编写方法。 1.前提知识 一个块驱动提供对块存储设备&#xff08;比如 SD 卡、EMMC、NAND Flash、Nor Flash、SPI Flash、机械硬盘、固态硬盘等&…

Bed Bath Beyond EDI 856提前发货通知

自从1971年创业以来&#xff0c;Bed Bath&Beyond&#xff08;以下简称为BBB&#xff09;一直在为用户提供货真价实的卫浴用品&#xff0c;床上用品等家用商品。Bed Bath&Beyond 致力于成为一个勇于承担责任的公司团体&#xff0c;在市场建立起良好的信誉&#xff0c;提…

JavaSE 案例练习——精算师 double精度丢失解决思路

案例介绍 具体的内容是这样的&#xff1a; 编写一个程序&#xff0c;提示输入一个代表总钱数的双精度值&#xff0c;然后确定每种纸币和硬币需要的最少数量以达到输入的总钱数。 假设人民币种类如下&#xff1a;佰圆纸钞&#xff0c;伍拾圆纸钞&#xff0c;贰拾圆纸钞&#…

Asible最佳实践-进阶版-RHCA447 定义分组与变量

Asible最佳实践-进阶版-RHCA447 -------定义角组变量/主机变量/变量文件6.1 所有受管节点设置sudo免密[root@libin libin]# vim /etc/sudoers.d/devops libin ALL=(ALL) NOPASSWD:ALL [root@libin sudoers.d]# scp devops 192.168.124.134:`pwd` 6.2 自定义ansible目录[root@l…

学习使用jquery控制select下拉选项的字体样式

学习使用jquery控制select下拉选项的字体样式实现代码实现代码 <script src"../jquery-2.1.4.min.js"></script><style>div#container {padding: 30px;font-family: verdana, lucida;}a {color: #777;display: block;background-color: #ccc;widt…

向开发者开放免费注册!“远眺捷码”提供一站式软件快速开发平台

近日&#xff0c;远眺科技旗下具有自主知识产权的国产一站式软件快速开发平台——“远眺捷码”宣布正式开放免费注册&#xff0c;有各类软件应用开发等需求开发者、软件开发企业&#xff0c;可访问捷码官网https://www.gemcoder.com/ 操作步骤&#xff1a; Step1、打开捷码PC端…

客户成功 | 数据解码技能提升,Smartbi助力长沙烟草找到“新路子”

让数据会“说话”能“干活”&#xff0c;为客户挖掘出更深层的数据价值&#xff0c;是Smartbi一直以来助力企业数字化转型的目标和方向。大数据时代&#xff0c;每个科学的决策离不开数据的支撑&#xff0c;数字化精益管理是各行业提升自身运营管理的必然选择。数字化转型的成色…

实验1c语言开发环境使用和数据类型,运算符和表达式

1.试验任务1 (1)在垂直方向上打印两个字符小人的源代码,以及运行结果截图\\在垂直方向上打印两个字符小人#include<stdio.h> int main() {printf(" o\n");printf("<H>\n");printf("I I\n");printf("\n\n");printf(&quo…

【PMP学习笔记】第10章 项目沟通管理

【PMP学习笔记】第10章 项目沟通管理 什么是项目沟通管理? 让正确的信息在正确的时间通过正确的方式传递给正确的人,达到正确的效果。一、规划沟通管理规划沟通管理是基于每个相关方或相关方群体的信息需求、可用的组织资产,以及具体项目的需求,为项目沟通活动制定恰当的方…

基于SSM的网上餐厅管理系统

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1研究背景及意义 1 1.2研究现状 1 1.3章节安排 2 第二章 相关技术说明 3 2.1 JSP(Java Server Page)简介 3 2.2 Spring框架简介 3 2.3 Spring MVC框架简介 5 2.4 MyBatis 框架简介 5 2.4 MySql数据库简介 6 2.5 Eclipse简介 6 2.6 T…

顺序表的实现

函数接口定义:顺序表描述的结构体为 typedef struct {ElemType *elem; //存储空间的基地址int length; //当前长度 } SqList;需要实现函数的接口分别为:int GetElem(SqList L, int i, ElemType &e) 顺序表的取值 判断i值是否合理,若不合理,返回0;[i-1]单元存储第i个数…

服务器开发26:Linux中线程和进程的联系与区别(游戏后端请和游戏思考10一起食用)

文章目录一、线程创建方法&#xff08;以redis举例&#xff09;1&#xff09;创建线程函数讲解2&#xff09;线程创建的标记二、内核中对线程的数据结构表示1&#xff09;task_struct具体定义2&#xff09;线程与进程的区别三、进程、线程创建过程及异同1&#xff09;进程创建(…

Oracle Form Builder 安装时遇到的问题记录

Oracle Form Builder 安装时遇到的问题记录 问题1&#xff1a;Checking operating system version: must be 5.0, 5.1 or 5.2. Actual 6.1 Checking operating system version: must be 5.0, 5.1 or 5.2. Actual 6.1 Failed <<<< 解决方法&#xff1a; 修改x:\ds…

JAVAEE多线程synchronized 优化过程

文章目录synchronized 优化过程一、锁升级/锁膨胀1. 偏向锁2. 轻量级锁3. 重量级锁二、锁消除三、锁粗化总结synchronized 优化过程 对于synchronized 1.既是乐观锁,也是悲观锁 2.既是轻量级锁,也是重量级锁 3.乐观锁的部分是基于自旋锁实现的,悲观锁的部分是基于挂起等待锁实…

springboot+jsp云课堂在线教育系统javaweb

“云课堂”在线教育系统是由高校学生依据兴趣爱好自愿组成&#xff0c;按照章程自主开展在线教育课程。“云课堂”在线教育系统是实施素质教育的重要途径和有效方式&#xff0c;在加强校园文化建设、提高学生综合素质、引导学生适应社会、促进学生成才就业等方面发挥着重要作用…

【23种设计模式】组合模式(Composite Pattern) .Net Core实现

文章目录需求变更我们应该怎么做?组合和单个对象是指什么呢?使用组合模式来设计菜单组合迭代器来源组合模式&#xff08;Composite Pattern&#xff09;&#xff0c;又叫部分整体模式&#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象&…

【服务器数据恢复】AIX环境下误删除逻辑卷的数据恢复方案

一、AIX存储层面相关的知识&AIX环境下LV误删除后的恢复方案。 对于AIX而言&#xff0c;PV相当于物理磁盘&#xff0c;一个VG由若干个PV组成&#xff0c;这让我们可以将容量不同的存储空间组合起来进行统一分配。AIX把同一个VG的所有PV按相同大小的存储颗粒&#xff08;PP&…