问题标签 [jpa-2.1]

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 投票
0 回答
104 浏览

inheritance - JPA:为什么 GenerationType.AUTO 不能与 InheritanceType.TABLE_PER_CLASS 策略一起使用

有人可以解释为什么 InheritanceType.TABLE_PER_CLASS 在映射继承时不能使用 GenerationType.AUTO 策略生成主键值吗?

0 投票
1 回答
677 浏览

hibernate - JPA 2.1 中标准获取连接中的导航方法

在 JPA 标准中使用 fetch 连接时,看不到导航方法。下面给出一个例子。

要浏览相关实体,Fetch需要将此类型强制转换为如下所示的连接。

导航方法get()在此转换后可用,就像,

这种类型转换是否可移植(虽然它适用于 EclipseLink (2.5.1) 和 Hibernate (4.3.5))?有没有其他方法可以做到这一点?为什么条件获取连接不支持导航方法有什么具体原因吗?


更新:( 我仍然认为这只是部分答案。因此,没有写在答案部分)

詹姆斯在这里很好地发现了为什么非常不鼓励使用导航方法(包括 JPQL 中的别名)并且不推荐特别是在关系中(因此不直接在s 中提供/支持):FETCH JOINOneToManyFETCH JOIN

EclipseLink 允许您在JOIN FETCH. 此支持旨在用于OneToOneManyToOne关系,以避免为了获得别名而必须加入两次,以及允许以不会过滤结果和改变对象构建ORDER BY方式的方式或其他方式使用它。但是,没有什么可以阻止您使用它来过滤获取 结果的内容。OneToManyOneToMany

您可能想用给定的示例阅读整个博客。根据我的经验,Hibernate(最新版本)也允许我们这样做。

一般来说,我个人不会在OneToMany关系中使用别名来浏览目标实体(具有外键的实体),这在实际项目中充其量是不需要的,但在OneToOneand/or中是必需的ManyToOne

0 投票
3 回答
8323 浏览

hibernate - 在 JPA 标准中具有复合主键的 IN 子句

我有一个group_table在 MySQL 中命名的表,只有两列user_group_idgroup_id(它们都是类型VARCHAR)。这两列共同构成一个复合主键。

我需要使用子选择执行一条语句,IN()以根据传递给查询的值列表选择行。

该实现产生以下查询。

请注意,关于组合键本身的前两个参数是null. 他们应该是user_group_idgroup_id分别。

为什么它们没有在参数列表中替换?


虽然我对在表中形成复合主键不感兴趣,但这(可能)对于我用于身份验证的 JAAS 来说是强制性的。

在这种情况下,查询返回与数据库提供的相同列表,这实际上是不必要的。我实际上需要这个查询来删除多行。

0 投票
4 回答
33377 浏览

spring-data-jpa - 出现错误无法在类上找到适当的构造函数

我正在尝试将本机 SQL 结果映射到我的 POJO。这是配置。我正在使用弹簧。

这是我的课

我怎么称呼它

但说到线

我收到一个错误

这是我正在尝试的查询

为什么我收到此错误?

谢谢

0 投票
1 回答
129 浏览

java - Java mapping json to two objects

I use Jersey to provide REST API. I wrote controller, which map request to entity:

It works fine for simple json like:

and entity:

How can I map JSON array like:

To two entites? First entity: user (shown above) and entity reqData:

I have of course One to One relationship, but it is not important here(I think). I hope my question is understandable. Thanks for help.

0 投票
1 回答
1046 浏览

java - Glassfish 4 - 使用 Hibernate 和 CDI @Transactional 的 TransactionRequiredException

我收到以下异常:

我正在使用休眠 4.3.5

持久性 XML:

我也尝试设置hibernate.transaction.jta.platform为,org.hibernate.engine.transaction.jta.platform.internal.SunOneJtaPlatform但会导致相同的错误。

EJB CMT´s工作正常。

从命令按钮调用创建操作:

0 投票
2 回答
266 浏览

java - 如何映射包含 ArrayList 的 HashMap


我在Java业余时间从事一个项目,
我开始使用JPA 2.1并学习使用annotations.
我有一个名为Schedule我想包含此字段的类:

课程是我的数据库中的另一个实体,LocalDate 是 Java 类。
那可能吗?

我尝试将@OneToMany 与@MapKey 结合起来,就像在How do you map a "Map" in hibernate using annotations? 但没有效果。
我在想,也许我需要创建其他Entities来促进这一点,比如 a ListOfLessons,它将包含ArrayList<Lesson>以缩短HashMapto :

欢迎任何帮助

0 投票
1 回答
105 浏览

java - “便携式应用程序”是什么意思?

我正在阅读 Java 持久性规范 2.1 版,第 25 页有最后一段:

实体子类可以覆盖属性访问器方法。但是,可移植应用程序不得覆盖应用于实体超类的持久字段或属性的对象/关系映射元数据。

那么“便携式应用程序”是什么意思呢?有人可以解释并提供一些例子吗?

0 投票
1 回答
6697 浏览

java - HIbernate 一对一注释未在依赖表中生成外键 GerericGenerator

我正在尝试在 Person 和 Auth 表之间创建 OneToOne 关系。问题是当生成数据库表“Auth”时,我没有在 AUTH 表中看到应该引用 Person 的外键。目的是让 Auth 表使用与 Person 表相同的主键。

休眠数据库生成后的我的数据库脚本。

0 投票
1 回答
747 浏览

multithreading - 多线程环境下的eclipselink错误

我在使用 ThreadLocal 的多线程环境中使用最新的 eclipselink (2.5.2) 来保证每个线程都使用自己的实体管理器,并且我得到了下面的异常。

通过互联网搜索,我意识到它发生在 2.3 版的类似环境中。有谁知道解决方法?如何克服这一点?