问题标签 [javax.persistence]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3695 浏览

java - HIbernate Annotations @GeneratedValue 策略类型之间的区别

我是 Hibernate 框架的新手。我正在使用带有 MySQL 5.7.14-log 的 Hibernate 5。

我正在学习主键@Id @GeneratedValue。我已经尝试过生成类型策略,即AUTO、SEQUENCE、IDENTITY、TABLE。

以下是我对AUTO、SEQUENCE、TABLE的观察创建的结果如下

GenerationType.AUTO/SEQUENCE 给出相同的结果(即创建一个新表hibernate_sequence)。而 TABLE 创建一个表 hibernate_sequences

我有以下疑问。

  1. AUTO 和 SEQUENCE 之间有什么区别吗?如果是,那么有什么区别以及它们特定于哪些数据库?

  2. MySQL的默认策略是什么?

  3. 对于 GenerationType.TABLE,hibernate_sequences 表创建有 2 列,sequence_name 和 next_val。sequence_name 列表示什么。[当前值为默认值]

这是我的 POJO 课程

我在网上搜索过,但我更加困惑。看到的链接

GeneratedValue策略之间的差异

http://docs.oracle.com/javaee/5/api/javax/persistence/GenerationType.html

0 投票
1 回答
180 浏览

jpa - 使用条件与仅创建查询时不同的结果集

没有条件查询的手动方法

我已经使用此代码通过与另一个表 ThirdPartyHasOwner 使用左连接来获取包含第三方的结果集,该表具有两个主键并且本身就是外键。现在下面的代码检索正确的结果数据集

使用 Criteria Builder 和 Criteria Query

但是当与标准生成器和查询一起使用时,结果集给出了错误的数据集。下面给出了代码所以为了检查上面的手动查询和条件查询是否给出了相同的查询,我添加了属性<property name="eclipselink.logging.level" value="FINE"/>,上面没有条件查询的代码和下面的有条件查询的代码都给出了相同的查询代码和控制台结果下面给出

控制台结果(第一个用于标准查询第二个用于手动方法

手动和标准查询的结果(结果变量具有错误数据,这是使用标准查询的结果,第三方变量具有正确的数据集,这是手动方法的结果)

最后但并非最不重要的是,我使用javax.persistence.persistence-api的是 eclipselink

这是数据库表的概述

第三方模型类

第三方模型类有所有者

那么我对条件查询做错了什么还是一些奇怪的错误?

0 投票
2 回答
6694 浏览

java - CriteriaQuery 月份和年份过滤器

我正在尝试在一个模型中进行条件查询(JPA/Hibernate),该模型包含一个带有日期的列(Oracle 11G)。例如,我有

  1. 2009 年 1 月 13 日
  2. 2009 年 1 月 15 日
  3. 09 年 3 月 16 日

我的功能是:

如果我想按 c = "01-JAN-09" 过滤,它应该返回:

  1. 2009 年 1 月 13 日
  2. 2009 年 1 月 15 日

任何帮助将不胜感激,在此先感谢。

0 投票
0 回答
262 浏览

java - Hibernate + Db2 + StoredProcedure 调用,传递 NULL 值

是否可以使用 Hibernate 和 Javax.Persistence 在存储过程调用中传递空值?

我正在尝试以这种方式做到这一点:

但是 DB2 告诉我:“缺少强制参数”。

有任何想法吗?

提前谢谢

0 投票
3 回答
4536 浏览

java - JPA createNativeQuery 未映射到实体类

我正在尝试使用 createNativeQuery 从我的数据库中获取结果集并将其映射到实体对象列表。

当我做

我最终得到一个大小正确的实体对象数组,并正确映射到列,但它们都是同一个对象。返回的第一个结果对于我列表中的每个条目都是重复的。

在此处输入图像描述

在上图中,您可以看到我取回了数据,如果我检查 ovbject,它们会正确映射到我的列。但它们都是同一个对象。

但如果我这样做

我得到了应有的不同对象的列表。但它们没有映射到我的 Entity 类。

在此处输入图像描述

在上面的图片中,您可以看到,当我使用ObjectEntity 类类型而不是我的 Entity 类类型时,我得到了返回的每一行的不同对象的结果集。我不知道为什么当我使用我的实体类时它只是一遍又一遍地重复同一行。

有谁知道是什么导致我每次都获得相同对象的列表?

我的查询是从存储过程中的流水线函数中选择

更新

我在我的过程中调用的流水线函数返回大约 200 行。出于测试目的,我只映射了前几列。

我的 Entity 类具有 200 列中的前 13 列的列映射。我调用该函数的查询正在执行 a select *,因此,它返回所有 200 列并映射前 13 列。我认为这是一个可能的问题,但我只是用我创建的新测试类并select *从常规执行将表转换为仅映射了 2 个列的实体。没有问题。它返回一个不同对象的列表。

我的结论是,一定有什么东西阻止 Hibernate 遍历我的流水线函数的结果集。它返回正确的行数,但它卡在第一行并一遍又一遍地创建该对象。

这个问题似乎与我的列映射无关

0 投票
1 回答
314 浏览

java - 从@NamedStoredProcedureQuery 中的存储过程返回值和结果集

我想在我的@NamedStoredProcedureQuery 中从存储过程中获取返回计数和结果集,该返回计数是结果行的总数。

我需要这个返回计数来在我的代码中对存储过程进行分页。

@NamedStoredProcedureQuery 可以吗?

0 投票
3 回答
1905 浏览

java - eclipseLink 2.7.0:“javax.persistence.AttributeConverter”的签名者信息不匹配的静态编织错误

在 eclipseLink 2.7.0 中运行静态编织的 gradle 任务时出现以下错误。

21:50:14.206 [ERROR] [system.err] 异常描述:PersistenceUnit [default] 的预部署失败。
21:50:14.206 [错误] [system.err] 内部异常:java.lang.SecurityException:类“javax.persistence.AttributeConverter”的签名者信息与同一包中其他类的签名者信息不匹配
21:50 :14.206 [错误] [system.err] 在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createPredeployFailedPersistenceException(EntityManagerSetupImpl.java:20 80)
21:50:14.206 [错误] [system.err] 在 org.eclipse。 persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:2071)
21:50:14.206 [ERROR] [system.err] 异常描述:PersistenceUnit [default] 的预部署失败。
21:50:14.206 [错误] [system.err] 内部异常:java.lang.SecurityException:类“javax.persistence.AttributeConverter”的签名者信息与同一包中其他类的签名者信息不匹配

我知道这些冲突是在不同的 jar 引用类时发生的。
检查相同的行。 javax.persistence 2.2.0 和 eclipselink 2.7.0 中存在导致冲突的 AttributeConverter。javax.persistence 2.2.0 是 eclipselink 2.7.0 的必需依赖项。
我猜测必须排除其中一个罐子,以便可以从 1 个罐子中引用 AttributeConverter。但不确定如何。

关于解决这个问题的任何想法?

0 投票
1 回答
145 浏览

spring-data - 如何通过字符串集合值查询实体 LIKE

我有以下实体:

我的Respositoryimplements JpaSpecificationExecutor,它允许我使用Specifications 过滤我的数据库请求:

对于SystemLogEntity这个工作正常的简单领域,这Predicate是直截了当的。

此外,如果我过滤集合中的确切项目,Predicate仍然是直截了当的(in)。

但是如何在给定值SystemLogEntity的堆栈跟踪集合项之后过滤我的LIKE

换句话说,我想例如SystemLogEntity在 term 之后进行过滤NullpointerException。这甚至可能Predicate吗?

0 投票
0 回答
113 浏览

java - javax.persistence.EntityTransaction.commit() 花了很多时间

这是一个相当模糊的问题,对此我深表歉意,但我已经走到了最后,没有其他地方可以问。

我正在使用一个程序,该程序使用javax.persistence库从.dat文件导入数据并将其放入数据库中。我必须以某种方式对其进行优化,因为目前它需要太多时间(加载一个 11 KB 文件需要将近 5 秒)。超过 85% 的执行时间用于调用 EntityTransaction 类的commit()方法。

我完全不知道如何优化它,因为它是一个内置的 java 库,而不是我或我的同事写的东西。我发现有些人在谈论优化它的方法,但我不明白如何起诉他们所说的话。

有没有人碰巧有这方面的经验,并愿意提供一些一般性的建议?即使只是指向易于理解的指南的链接,也将不胜感激。谢谢你。

0 投票
1 回答
543 浏览

java - 难以将此休眠标准转换为 JPA 标准,多个关联实体存在问题

我要更改的休眠条件查询如下所示

我想简单地将其更改为使用 JPA CriteriaQueries。我遇到的问题是 javax.persistence 如何使用作为字符串传入的多个关联实体创建查询。我想使用 JPA 根标准并像这样使用 criteriaQuery 多选它们

这里的问题是您不能将字符串作为参数传递给根对象。我不确定如何创建这样的查询。