java - 读取实体时更改 DAO/Repository 中的特定值

标签 java hibernate spring-boot jpa

我正在从旧的数据库读取数据。不知何故,他们使用 0 索引放置所有不存在的关系,例如: 对象人:

id: 123
name: john
surname: snow
birthCityId: 0 <-- this means that there is no relationship between city and this person.

现在,在 JPA 中,我遇到的问题是它正在加载人员实体,但找不到索引为 0 的相关城市实体。我想编写代码,当我的城市 ID 为 0 时,城市实体设置为 null。 我怎样才能做到这一点? 我不想在数据库中创建索引为 0 的新实体。

谢谢

最佳答案

您可以使用 Hibernate @NotFound 注释:

@ManyToOne
@NotFound(action=NotFoundAction.IGNORE)
private City birthCity;

https://docs.jboss.org/hibernate/orm/5.3/javadocs/index.html?org/hibernate/annotations/NotFound.html

我没有看到其他发布的解决方案工作,因为 Hibernate 加载时会发生异常,即在您能够通过其他方式处理它之前。

关于java - 读取实体时更改 DAO/Repository 中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56993533/

相关文章:

java - 在 Spring boot Transaction 中以只读方式执行 RxJava observable?

java - 依赖同一个 Gradle 依赖项目的主代码和测试代码

java - 致命异常 :Async Task #1

java - SpringBoot 测试模块不在正确的类路径中搜索 log4j2 配置

java - hibernate 标准 : Find property nested in a list

java - Hibernate 和 MySQL 的创建时间戳和上次更新时间戳

java - 如何将 html 输入保存到列表中并在每次提交时显示?

java - 当通过 -Xmx 分配更多内存时,Sun JVM 会变慢吗?

java - 如何使用 dropbox java api 同时上传多个文件

java - 两个类中的相同属性名称在 Hibernate 中会出现错误