问题标签 [spring-data-jpa]

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 投票
2 回答
5524 浏览

java - JPA 连接两个辅助表

我有这五张桌子:

通过使用 JPA,我创建了这三个实体类:

  1. 类 common.contact.City

    /li>
  2. 类 common.contact.State

    /li>
  3. 类 common.system.Language

    /li>

但是当我尝试运行这个查询时

我收到此错误:

仅供参考,添加以下数据:

REF_CT

REF_CT_L

REF_ST

REF_ST_L

参考语言

生成的 SQL 是:

谢谢你的帮助!

0 投票
2 回答
38069 浏览

java - JPA 存储库:javax.persistence.NonUniqueResultException:结果返回多个元素

使用下面的代码我无法得到我的查询结果。无论我使用Map<ContentType...还是Map<String...我得到相同的错误:javax.persistence.NonUniqueResultException:结果返回多个元素

JPA 似乎应该能够处理存储库中的多行。我四处寻找可能只是丢失的其他注释,并且很难得出结果。

关于我应该做些什么来解决这个问题的任何建议?

0 投票
1 回答
3883 浏览

jpa - 无法使用 spring 3.1 使 JTA 在 jboss AS7.1 上工作

我们正在尝试配置一个 Spring 应用程序来处理 JTA 事务。并不是说它失败了,而是我们尝试的一切都只是进行选择并忽略了我们的持久性操作。

正如您在以下日志中看到的,即使保存语句运行,也没有插入语句,也没有异常,也没有错误/警告日志

服务器日志

就像认为应用程序服务器认为一切正常。而如果您检查表,则没有进行插入或更新。

我们打算与 spring 应用程序一起使用的数据源已被运行在同一应用程序服务器中的 Java EE war 应用程序成功地用于 JTA 事务。

由于我们不知道问题可能出在哪里,我想把它放在完整的上下文中。

  • 春季 3.1.2-RELEASE
  • 休眠 4.1.5.Final
  • spring-data-jpa 1.1.1.Final
  • 阿帕奇轴1.4
  • jboss AS7.1
  • 数据库:甲骨文 10g

我们一直在尝试各种疯狂的配置以使其正常工作,所以我将在这里复制最简单的配置。

独立的.xml

web.xml

spring-jpa-config.xml

过去我们制作了 jboss AS5/Spring 3.0 应用程序来处理 JTA 事务,所以这不是我第一次这样做,我们一直在寻找我能找到的所有可能的博客和开源项目。然而,在我的应用程序中,任何似乎对每个人都顺利运行的东西似乎都被忽略了。我确信应该是我们在某个地方遗漏了一些非常愚蠢的东西,但到目前为止我们已经尝试了 70 多种不同的配置,但似乎没有一个能做一个简单的插入,否则在不尝试 JTA 时可以正常工作。

(我们使用轴 1.4 的事实可能相关或不相关,但我想告诉您,因为我们的应用程序仅在 Web 服务调用后触发操作)。在这一点上,我们开始相信配置超自然活动......

任何线索任何人?

0 投票
1 回答
1823 浏览

java - JPA Data Repository 结果丢失其数据类型

我正在尝试获取以下代码来显示我的查询结果。不幸的是,它不起作用。

在我的服务层上,我做...

objects最终Object[]在变量调试器中。我不确定为什么它不遵守Map<String, Integer>我告诉它使用的。

我在想作为替代方案,我可以只返回一个对象列表。我试图在谷歌周围试图找出要搜索哪些关键字才能找到这样的结果。虽然理想情况下我想避免只为这个查询结果创建一个对象,如果它只是返回Map

0 投票
1 回答
1214 浏览

java - 如何在简单的 Servlet 中使用 Spring Data JPA?

我对 Spring 很陌生,但我正在开发一个使用 Spring Data JPA 为 JPA 实体生成存储库的项目。

我目前正在添加一个简单的模块,以便能够在网页上显示一些数据。我添加了一个 Servlet,但我无法从那里访问存储库。

我在 web.xml 中添加了一个 ContextLoaderListener,我在 applicationContext.xml 中引用了 jpa:repositories 和 persistence.xml,但我目前遇到了这个异常:

没有定义类型为 [javax.persistence.EntityManagerFactory] ​​的唯一 bean:预期为单个 bean,但发现为 0。

但是当我在 persistence.xml 添加一个 EntityManagerFactory 时,我收到以下神秘消息:

java.lang.IllegalAccessError:试图从类 org.hibernate.engine.spi.EJB3CascadeStyle 访问字段 org.hibernate.engine.spi.CascadeStyle.STYLES

我的问题是:我正在尝试做的事情是否可能?如果是这样,怎么办?还是我应该咬紧牙关,完全使用 Spring MVC 或其他东西?

注意:这仅适用于单页网站,我试图使其尽可能简单。

0 投票
1 回答
6305 浏览

jpa - 关系ManyToOne,javax.persistence.EntityExistsException:具有相同标识符值的不同对象已与会话关联

我花了很多时间寻找这个错误,但我无法解决这个问题。我将 Spring JPA 与 Hibernate 和 Postgre 一起使用。我有两个实体 Location 和 Ap:

应用:

位置2

当我将一个位置添加到 Ap 时,它可以工作,但是当 Ap 有两个或更多位置时,我无法保存 Ap 实体。

应用服务:

它会出现错误:

我还尝试了 EntityManager 与 merge 和 persist 方法,这给出了同样的错误。请帮忙。

0 投票
2 回答
5123 浏览

spring - Spring Data DomainClassConverter 不起作用(与 Java Config 结合使用)

我正在尝试设置 Spring Data/JPA DomainClassConverter 以自动将(字符串)id 转换为域类本身。

我的项目是使用 Java Config(所以没有 xml)。

在我的 WebConfig 中,我目前有:

这似乎成功连接了 DomainClassConverter,因为我可以在打印时在转换服务中看到它:

但是当提交嵌套表单(带有客户参考的订单)时,客户不会自动转换,因此我得到:

我想知道我是否在这里做错了什么?

0 投票
2 回答
4192 浏览

spring - 弹簧标签不使用 Spring Data DomainClassConverter?

我正在使用 Spring MVC 和 Spring Data,并且还配置了 Spring DataDomainClassConverter以自动将 String id 转换为适当的 Domain 类。

我现在正在使用以下标签实现 Order to Customer 参考:

这导致给定的HTML:

当提交选择客户 A 的帖子时,我得到一个例外,例如:

这根本没有意义,因为收到的值应该是 1 而不是 ''。我还调试了收到的请求参数,它只包含 customer=1 (如预期的那样)

请注意,它InvalidDataAccessApiUsageException来自 Spring Data DomainClassConverter,如果我删除了这个转换器,问题就不会再发生了。

我还调试了DomainClassConverter它,我可以看到它试图覆盖两次。首先使用字符串值 1(如预期的那样),然后使用空字符串进行另一个调用,导致异常。

然而它变得更奇怪了......

当我<form:option value="" label="Select" />用普通的 html 元素替换时<option value="">Select</option>,不会发生异常,因此只使用字符串 1 对 convert 方法进行 1 次调用。奇怪的部分是两者都<form:option value="" label="Select" />产生<option value="">Select</option>相同的 html 输出......

我无法解释这种行为......虽然我似乎有一个使用普通 html 元素的“解决方法”,但我想知道是什么导致了这个问题。

0 投票
2 回答
3718 浏览

java - Spring - JPA - 插入 - 不为具有默认抛出错误的字段传递值

表中的一些不可为空的字段具有默认值。通过 JPA 将新行插入表中时,我不想为这些字段传递任何值,以便它们获得默认值。但是,当通过 Spring JPA 存储库类插入新行时,出现无法插入空值的错误。我注意到 JPA 发送到数据库的插入语句列出了所有字段:

由于 field2 和 field3 指定了 null,因此未分配默认值,并且数据库抛出无法插入 null 值的错误。有解决方法吗?

0 投票
1 回答
1182 浏览

inheritance - JPA 继承、Spring Roo 和 Spring Data JPA 的设计问题

我目前正在开发一个 Spring Roo/JPA 应用程序,最近我切换到基于 JPA 继承的域模型。总结一下我的域模型,我有一个抽象Member实体,它由两个实体子类化:MaleFemale.

在我所有的 Spring MVC 控制器中,我希望避免总是注入两个服务依赖项(一个处理Male实体,另一个处理Female实体)。我宁愿拥有一项MemberService服务(连同相应的MemberRepository),它会返回一个Male实例或一个Female实例。

以上是否可以使用 Spring Roo 注释,例如:

  • @RooService(domainTypes = { Member.class })或者那个:
  • @RooJpaRepository(domainType = Member.class)?

例如,这会Member findByEmail(String email);返回一个我可以转换FemaleorMale类型的对象吗?

更一般地说,在 Spring 控制器和 Spring 服务级别处理实体继承的最佳实践是什么?