问题标签 [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 回答
284 浏览

java - 无法使用 Microsoft SQL Server 和 Javax.Persistence 解析 Java 中的列 [名称]

我将 SQL Server 数据库中的表转换为实体的类之一。

和 CrudRepo (部分):

我所有的列名都是红色的,并带有两个错误:

  1. 无法解析列“”;
  2. 未知的数据库函数'';

我检查了持久性和已经分配的数据——这是这个问题最流行的解决方案。我已经检查了方言 - SQL Server。我检查了所有列名,没有发现任何错误。

0 投票
1 回答
301 浏览

hibernate - Spring JPA 中多个属性的外键

我有一个现有的具有属性的子实体。现在,我想为父实体中子实体的两个属性添加外键约束。以下是SQL

我有Child实体

我正在寻找的是,添加从 Parent 到 Child 的单向关系作为propertyin Parent

0 投票
0 回答
92 浏览

java - 理解方法 javax.persistence.EntityManager.refresh(Object entity)

谁能帮我理解javax.persistence.EntityManager.refresh(Object entity)方法的实现和应用

我正在阅读该方法的文档: void javax.persistence.EntityManager.refresh(Object entity)

有关该方法的详细信息的网址是: https ://docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html#refresh-java.lang.Object

该方法的描述说:

“从数据库中刷新实例的状态,覆盖对实体所做的更改(如果有)。”

因此,“从数据库中刷新实例的状态”意味着对同一实体/实例的下一次读取应该给出最近更新的结果。我无法解释描述的下一部分:“覆盖对实体所做的更改,如果有的话。”

谢谢!

0 投票
1 回答
220 浏览

java - 无法构建 Hibernate SessionFactory 没有明显的原因

我真的在为弹簧靴和休眠的问题而苦苦挣扎。我收到此错误:

我在想该应用程序无法连接到 mysql 数据库,但似乎并非如此,因为 flyway 能够连接并运行迁移脚本。

奇怪的是,如果我在另一台机器上运行完全相同的 jar,它就可以工作。在我得到错误之前,日志看起来是一样的。

错误日志:

没有错误日志:

我真的坚持这一点。即使以日志记录级别 TRACE 运行,我也找不到 PersistenceException 的实际原因。同样,我在互联网上的任何地方都找不到这种确切的异常行为,大多数情况下它与错误的配置有关,并且日志提供了更多详细信息。它必须与机器有关,但我不知道是什么,也无法从日志中获得更多信息。

0 投票
1 回答
1640 浏览

spring - TransactionRequiredException:没有可用于当前线程的具有实际事务的 EntityManager - 无法可靠地处理“合并”调用

我们有一些旧的 spring 应用程序,其中我们有一些 spring-boot 注释。我有一个场景,我想使用 EntityManager 执行合并,但这会引发“javax.persistence.TransactionRequiredException:没有 EntityManager 与当前线程的实际事务可用 - 无法可靠地处理‘合并’调用”异常。我已经尝试过其他帖子中可用的解决方案,例如在 upload() 方法级别上使用 javax.persistent @Trasactional 注释,但没有任何效果。这些是我正在使用的类 -

ApplicationContextProvider.java

MyConfigType.java

ConfigUploader.java(抽象类)——

我正在使用来自 entityManager 的合并的 ConfigLoader 实现类-

最后,我调用 ConfigLoader 实现的 upload() 方法的主类 -

0 投票
2 回答
293 浏览

hibernate - Spring boot 3 问题:为什么不能用 Postman 和前端调用 API 调用 API 然后得到空数组?

我创建了一个 API,它被称为搜索商店功能。.

MySql 脚本

当我使用这个 SQL 脚本在 MySql 中运行时。它将显示有效结果

.

点击图片查看MySQL的结果

MySQL 和有效结果图像

来自 StoreService.java 和 Hibernate 的日志

调用API前点击查看Postman

当我通过前端调用它时,StoreService.java中的日志是......

.

Postman 调用 API 时的错误日志

邮递员参数图像
当邮递员调用它时会得到

.

我的 Springboot 代码:

StoreController.java

.

StoreService.java

.

StoreRepository.java

注意:

我在我的POJO 类中被标记为他们有来自javax.persistence包的@Table@JoinColumn警告

Cannot resolve table 'table_name'@Table@JoinColumnCannot resolve column 'product_id'
Cannot resolve column 'branch_id'

Store.java (Pojo)

Product.java (Pojo)

Branch.java (Pojo)

我想知道根本原因

  1. 为什么我从 Frontend 调用 API 时得不到有效结果?
  2. 为什么我不能从 Postman 调用 API?
  3. 为什么javax.persistenct的注释无法解析table_namecolumn_name

最后我需要解决这些问题的解决方案

非常感谢您的帮助

0 投票
2 回答
589 浏览

java - 使用 ID 的单向 @OneToOne

我想@OneToOne使用 ID 创建单向关系。让我们考虑以下示例:

user_address.id在数据库上,引用有外键约束user.id。我尝试使用许多不同的注释组合,但我仍然遇到删除问题。我正在使用用户的 JpaRepository,当userRepository.deleteById(id)被调用时,只有子 ( address) 被删除,而不是父 ( user)。我真的很想保留@Id名称为“id”的列。甚至可能吗?

编辑

当我使用以下代码时:

userRepository.deleteById(id)被调用时,只有孩子被删除。我不知道为什么......此外,我想保持这种关系是单向的。

编辑用户存储库

编辑 - 解决 了。我有另一个实体(我们称之为公司),它有Set<User>. 事实证明,让它获取。EAGER 防止用户被删除...感谢大家的宝贵时间。我不知道这可能是一个问题,所以我没有提到它......

0 投票
0 回答
83 浏览

java - 使用@SecondaryTables 显示啤酒表、类别表和样式表中的所有数据

我正在尝试在列表中显示啤酒表中的所有数据对象,并在向下钻取中显示所有啤酒数据及其来自类别表的相应类别名称和来自样式表的相应样式名称,它会获取这些来自 beer 表样式 id 和类别 id 列的结果。

我尝试使用如图所示的 @SecondaryTables 注释,但在啤酒列表中它只显示 10 种啤酒,这是类别名称的数量,因此它搞乱了它的映射方式。以下是我这样做的尝试。

这是我添加到 JPA 类的内容,对此的正确解决方案是什么。

这是 ER 图中表格的图片 在此处输入图像描述

这是 beers.java JPA 供额外参考

下面是我尝试使用@manytoone 注释

分类目录.java

样式.java

500 错误根本原因

0 投票
0 回答
151 浏览

hibernate - 审计 Spring Boot 中的列更改

我正在做一个项目,我的要求是向那些在 28 天内未更新密码的用户发送电子邮件。

现在,我需要审核密码更新的更改。但是从我在网上搜索的内容来看,我所做的只是审核整个专栏的变化。

是否可以审计一列而不是整行的更改?

这段代码会审核列的更改,因此这将不起作用,因为如果管理员更改了用户详细信息,那么lastModifiedDate也会更改,然后在 28 天后触发的电子邮件不会在用户更改密码时触发。

任何帮助将不胜感激。

为我的英语道歉,因为它不是我的第一语言。

0 投票
1 回答
42 浏览

java - SQL(和 Javax.Persistence.Query.ExecuteQuery)如何使用 UPDATE 与 WHERE-IN 和 AND

我正在尝试创建一个 SQL 语句,将表的“状态”列中的特定行从“不正常”更新为“正常”,但仅适用于具有提供的 ID 和状态的行。

表中的数据 (table1.id, table1.status) = [ID1, PENDING], [ID2, NOT OK], [ID3, NOT OK]

一个 ID 列表将从 java 传递到“in()”部分,我只有 ID,没有状态数据。请注意,ID1 的状态不是“NOT OK”。

我到目前为止的代码;

如果括号内的列表包含所有带有“NOT OK”的 ID,它将对括号中的所有 ID 进行更改。但如果其中一个 ID 包含不同的状态,则不会进行任何更改。

该语句应忽略 ID1,因为它的状态不是“不正常”,但仍将 ID2 和 ID3 的状态更改为正常。如何修复代码?注意由于权限限制,我不允许使用创建表(甚至是临时表)。

我可以进行两个 SQL 调用;首先通过 ID 选择 where status = not OK,然后在没有“WHERE table1.status='not OK'”部分的情况下执行此更新语句,但如果可能,我会尽量避免这样做