淮安建设局网站最新产品上市代理加盟

news/2025/9/22 23:14:28/文章来源:
淮安建设局网站,最新产品上市代理加盟,一般网站建设,洛宁县东宋乡城乡建设局网站jpa 手动预编译JPA提供了几种查询数据的方法。 可以根据各种标准#xff08;例如#xff0c;使用的语言#xff08;SQL与JPQL#xff09;或查询是静态的#xff08;编译时间#xff09;还是动态的#xff08;执行时间#xff09;#xff09;对此类替代方案进行分类。 … jpa 手动预编译 JPA提供了几种查询数据的方法。 可以根据各种标准例如使用的语言SQL与JPQL或查询是静态的编译时间还是动态的执行时间对此类替代方案进行分类。 静态查询是使用Entity类定义本身中的注释NamedQuery javax.persistence.NamedQuery 和NamedQueries javax.persistence.NamedQueries 定义的 NamedQuery(namefindAllCustomersWithName,querySELECT c FROM Customer c WHERE c.name LIKE :custName) 另一方面 EntityManager提供了分别接受JPQL或SQL查询的createQuery…和createNativeQuery…方法。 因此可以在编译或执行时定义查询。 注意 建议始终使用Query中的 setParameter…方法来使用参数化查询以避免SQL注入漏洞。 标准API 但是JPA提供了另一种查询对象的方法 Criteria API 。 确实切换到JPA的动机之一是处理对象而不是SQL方言不是吗 让我们看一个示例代码。 实体定义 Entity public class User {Idprivate Integer userId;BasicColumn(length15, nullablefalse)private String name;BasicColumn(length64, nullablefalse)private String userDigestedPasswd;BasicColumn(length50, nullabletrue)private String email;BasicColumn(nullablefalse)public Integer privilegeLevel;BasicColumn(nullablefalse)private Boolean active; } 让我们查询数据库并检查结果使用JUnit public class UserTest {Testpublic void testUserCriteria(){ EntityManagerFactory emf null; EntityManager em null; try {emf Persistence.createEntityManagerFactory(criteria);em emf.createEntityManager();final CriteriaBuilder cb em.getCriteriaBuilder();final CriteriaQueryUser q cb.createQuery(User.class);final RootUser users q.from(User.class);final Predicate condition cb.equal(users.get(privilegeLevel), 5);q.select(users).where(condition).orderBy(cb.asc(users.get(userId)));em.getTransaction().begin();ListUser result em.createQuery(q).getResultList();em.getTransaction().commit();assertNotNull(result);assertEquals(2, result.size());assertEquals(1, (int)result.get(0).getUserId());assertEquals(Pepe, result.get(0).getName());assertEquals(3, (int)result.get(1).getUserId());assertEquals(Dolores, result.get(1).getName());} catch (Exception e) {fail(Unexpected Exception e.getMessage()); } finally {if (em ! null)em.close();if (emf ! null)emf.close(); } } } 以下几行显示查询的创建 final CriteriaBuilder cb em.getCriteriaBuilder();final CriteriaQueryUser q cb.createQuery(User.class);final RootUser users q.from(User.class);final Predicate condition cb.equal(users.get(privilegeLevel);q.select(users).where(condition).orderBy(cb.asc(users.get(userId 首先从EntityManager获得CriteriaBuilder 。 然后获取一个CriteriaQuery实例将该类设置为保存结果。 在我们的例子中 User.class final CriteriaBuilder cb em.getCriteriaBuilder(); final CriteriaQueryUser q cb.createQuery(User.class); 接下来必须设置要对其运行查询的实体 final RootUser users q.from(User.class); 现在是时候设置查询匹配条件了。 在示例代码中条件只是属性privilegeLevel等于5 final Predicate condition cb.equal(users.get(privilegeLevel), 5); 最后构建查询以在Root上添加条件。 也可以设置分组和排序选项即对userId设置升序 q.select(users).where(condition).orderBy(cb.asc(users.get(“userId”))); 请查看CriteriaBuilder中的不同选项。 可以在CriteriaQuery中找到分组和排序选项。 使用元模型进行编译时检查 请注意我们刚刚构建的查询需要跟踪对象属性名称。 例如要构建查询将使用属性privilegeLevel的名称。 但是如果稍后更改属性名称则代码将编译并且仅在运行时失败 final CriteriaQueryUser q cb.createQuery(User.class);final RootUser users q.from(User.class);final Predicate condition cb.equal(users.get(privilegeLevel), 5);q.select(users).where(condition).orderBy(cb.asc(users.get(userId))); 那不好 幸运的是使用元模型我们将能够构建编译时检查的查询。 可以在The Java EE6 Tutorial中找到简短的介绍。 使用元模型代码将引用对象的SingularAttribute而不是使用包含对象属性名称的String。 因此如果稍后更改对象属性则编译器将为我们标记该属性。 首先必须创建对应的元模型类 EntityType 。 尽管可以通过多种方式实现但对于openJPA实现最简单的方法可能是添加一个openJPA构建标记 -Aopenjpa.metamodel true 。 因此我们创建了User_类它是User的对应元模型类 * Generated by OpenJPA MetaModel Generator Tool. **/ package com.wordpress.tododev.criteria.entities; import javax.persistence.metamodel.SingularAttribute; javax.persistence.metamodel.StaticMetamodel (valuecom.wordpress.tododev.criteria.entities.User.class) javax.annotation.Generated (valueorg.apache.openjpa.persistence.meta.AnnotationProcessor6,dateMon Mar 04 16:47:46 CET 2013) public class User_ {public static volatile SingularAttributeUser,Boolean active;public static volatile SingularAttributeUser,String email;public static volatile SingularAttributeUser,String name;public static volatile SingularAttributeUser,Integer privilegeLevel;public static volatile SingularAttributeUser,String userDigestedPasswd;public static volatile SingularAttributeUser,Integer userId; } 如果将此类添加到代码库中则以后对User类的任何更改都不会引起注意。 而且将自动生成的项目添加到代码版本控制系统中不是一个好主意。 使用ant maven或类似工具可以添加目标以创建元模型类。 在更改JPA实体后应执行该目标。 也可以使用IDE。 例如对于使用Eclipse的只需要已经提到编译标志添加属性- Java的反编译注解处理器和的libJAR包含所选择的JPA实现第厂路内注释处理器的注释处理器可能导致自动模式下的编译问题前提是必须在使用它的代码之前编译元模型类。 让我们向套件添加另一个测试。 这个不会提供包含属性名称的String而是使用metamodel类 Testpublic void testUserCriteriaMetaModel(){EntityManagerFactory emf null;EntityManager em null;try {emf Persistence.createEntityManagerFactory(criteria);em emf.createEntityManager();final CriteriaBuilder cb em.getCriteriaBuilder();final CriteriaQueryUser q cb.createQuery(User.class);final Metamodel m em.getMetamodel();final RootUser user q.from(m.entity(User.class));final Predicate condition cb.equal(user.get(User_.privilegeLevel), 5);q.select(user).where(condition).orderBy(cb.asc(user.get(User_.userId)));em.getTransaction().begin();ListUser result em.createQuery(q).getResultList();em.getTransaction().commit();assertNotNull(result);assertEquals(2, result.size());assertEquals(1, (int)result.get(0).getUserId());assertEquals(Pepe, result.get(0).getName());assertEquals(3, (int)result.get(1).getUserId());assertEquals(Dolores, result.get(1).getName()); } catch (Exception e) {fail(Unexpected Exception e.getMessage());} finally {if (em ! null)em.close();if (emf ! null)emf.close();}} 更相关的更改是user.getUser_.privilegeLevel而不是users.get“ privilegeLevel”和   user.getUser_.userId而不是   users.get“ userId”。 从GitHub下载源代码。 翻译自: https://www.javacodegeeks.com/2014/08/compile-time-checking-jpa-queries.htmljpa 手动预编译

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

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

相关文章

网站开发实训指导书在线制作广告图片

原标题:赵县308国道一路口发生一起大货车与电动三轮车碰撞事故,电动三轮车驾驶人受伤。2020年11月4日上午,赵县308国道一路口发生一起大货车与电动三轮车碰撞事故,造成电动三轮车驾驶人受伤。大货车驾驶人驾驶一辆重型货车&#x…

科技公司网站设计方案页面设计公司招聘

怎么把Python当计算器用?(小白自学笔记) Part I:标准数学包的导入 今天刚刚装了python,打算用它来取代matlab的基本计算功能,当我的日常计算器用。(这里还有一个捷径,如果你跟我一样也是纯小白的话,直接问c…

青春网站建设工作室wordpress调出媒体库

文章目录 一.docker容器概述1.什么是容器2. docker与虚拟机的区别2.1 docker虚拟化产品有哪些及其对比2.2 Docker与虚拟机的区别 3.Docker容器的使用场景4.Docker容器的优点5.Docker 的底层运行原理6.namespace的六项隔离7.Docker核心概念 二.Docker安装 及管理1.安装 Docker1.…

旅游网站开发系统的er图服务好的镇江网站优化

为保证2019年上半年博士生毕业工作顺利开展,根据我校博士生答辩管理的相关文件,现将有关事项通知如下,请遵照执行。1.毕业申请:拟毕业研究生于3月15日前登录“中南大学研究生教育管理信息系统”(以下简称管理系统),在管理系统个人…

网站备案需要具备什么wordpress 元描述

文章目录 1、写时拷贝2、进程终止2.1 进程退出场景2.1.1 退出码2.1.2 错误码错误码 vs 退出码2.1.3 代码异常终止引入 2.2 进程常见退出方法2.2.1 exit函数2.2.2 _exit函数 本片我们主要来讲进程控制,讲之前我们先把写时拷贝理清,然后再开始讲进程控制。…

文具电子商务网站开发内容哈尔滨网站备案手续

应用架构与可观测技术演进历程 在软件开发早期,单体应用架构因其结构简单,便于测试和部署,得到了广泛的应用,对应的监控诊断技术主要是基于日志和日志关键词的指标监控。随着软件复杂度的不断提升,单体应用架构逐步向分…

购物网站建设基本流程树状图大连网站建设设计公司哪家好

深度学习模型种类繁多,可以根据任务类型和应用场景进行分类。以下是主要模型类型的详细介绍,每种模型包含了其特点、功能、代表性模型,以及常见应用。 1. 分类模型 分类模型是深度学习中最基本也是最广泛应用的模型类型,其目标是…

使用python读取windows日志表

在windows系统中,注册表 是系统定义的数据库,应用程序和系统组件在其中存储和检索配置数据。 注册表是一个分层数据库,其中包含对 Windows本身以及Windows上运行的应用程序和服务至关重要的数据。 因此我们还是不好…

西安市免费做网站站长统计幸福宝下载

引言 在当前计算机科学领域中,保护软件代码的安全性和隐私性变得愈发重要。为了防止黑客攻击和恶意软件分析,开发人员采用各种技术来混淆和加密其代码,其中包括JS混淆技术。本文将介绍JS混淆技术的原理和应用,并提供一些相关的加密…

网站建设方案对比分析社区团购最新模式

1.Python2.webservice3.requirejs4.idea5.webService6.redis7.doubble8.mongDB9.zookper 大数据学习曲线:课程一、大数据运维之Linux基础课程二、大数据开发核心技术-Hadoop 2.x从入门到精通课程三、大数据开发核心技术-大数据仓库Hive精讲课程四、大数据协作框架-S…

建设厅八大员报名网站免费企业网站源码

跳跃游戏 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。在这里插入图片…

建设银行甘肃分行网站企业微信app下载安装官网

CentOS 安装nginx 安装使用的是配置nginx官网yum仓库安装 同时适用于Red Hat Enterprise Linux 及其衍生产品,例如 CentOS、Oracle Linux、Rocky Linux、AlmaLinux 如想使用压缩包解压方式安装请自行百度 注:安装全程使用非root用户 且 该用户已有sudo权…

佛山营销型网站建设公司第三方网站开发优缺点

YUM 功能 软件包安装&#xff1a; 通过yum命令安装软件包。例如&#xff0c;安装一个名为 example-package 的软件包 yum install example-package更新包 检查更新&#xff1a; 检查可用更新&#xff1a; sudo yum check-update <package_name>软件包更新&#xff1a; y…

万网官方网站浙江省建设工程监理管理协会网站

题目描述 最近米咔买了n个苹果和m个香蕉&#xff0c;他每天可以选择吃掉一个苹果和一个香蕉&#xff08;必须都吃一个&#xff0c;即如果其中一种水果的数量为0&#xff0c;则他不能进行这个操作&#xff09;&#xff0c;或者使用魔法将某一种水果的数量翻倍。 现在米咔想吃西…

宿州产品网站建设网站开发合同书

本文是LLM系列文章&#xff0c;针对《Meta Semantic Template for Evaluation of Large Language Models》的翻译。 大型语言模型评估的元语义模板 摘要1 引言2 相关工作3 方法4 实验5 结论 摘要 大型语言模型(llm)是否真正理解语言的语义&#xff0c;或者只是记住训练数据?…

开机RAM分析调试SOP

思维导图 数据来源 内存分解对比项一、硬件保留内存 二、MemFree剩余物理内存 三、MemAvailable剩余可用内存Kernel占用内存 用户空间占用内存 思维导图 数据来源/proc/meminfo 内存状态信息 dumpsys memin…

9.20 模拟赛 T4

题意:有 \(n\) 个点,每个点有四个属性 \(a_i,b_i,c_i,v_i\)。现在要在这 \(n\) 个点之间连无向边。要求:\(i\) 的度数至少为 \(a_i\)。 \(i\) 的所有邻居 \(j\) 的 \(v_j\),要么都小于等于 \(v_i\),要么都大于等于…

建设网站的题目无实体店营业执照申请

网站优化搜索引擎与关键词 人们不应该高估搜索引擎的智商。这不利于seo的研究&#xff0c;事实上&#xff0c;搜索引擎是非常愚蠢的&#xff0c;让我们举一个非常简单的例子&#xff0c;你在搜索引擎中输入“教师”这个词&#xff0c;搜索引擎就会给出一个准确的搜索列表。我们…

厦门网站改版网络营销的成功案例

目标 知道GoogLeNet网络结构的特点能够利用GoogLeNet完成图像分类 一、开发背景 GoogLeNet在2014年由Google团队提出&#xff0c; 斩获当年ImageNet(ILSVRC14)竞赛中Classification Task (分类任务) 第一名&#xff0c;VGG获得了第二名&#xff0c;为了向“LeNet”致敬&#x…

怎么建设网站做一家网站

文章目录 一、机器学习是什么&#xff1f;二、模型训练YouTube流量预测1. 先写一个具有未知参数的函数&#xff08;Function&#xff09;2. 定义损失&#xff08;从训练数据进行计算&#xff09;3.最优化4.结果分析 Back to framework1.带有未知数的函数&#xff1a;2.定义损失…