java - 读取实体时更改 DAO/Repository 中的特定值
问题描述
我正在从旧的遗留数据库中读取数据。不知何故,他们使用 0 索引放置所有不存在的关系,例如: Object Person:
id: 123
name: john
surname: snow
birthCityId: 0 <-- this means that there is no relationship between city and this person.
现在,在 JPA 中,我遇到的问题是它正在加载人员实体,但它找不到索引为 0 的相关城市实体。我想编写代码,当我有 ID 为 0 的城市时,城市实体设置为空。我怎样才能做到这一点?我不想在数据库中创建索引为 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
我没有看到其他发布的解决方案会在休眠负载上发生异常,即在您能够通过其他方式处理它之前。
推荐阅读
- javascript - Gulp 4 中未显示引导图标
- php - 在 null 上调用成员函数 subject()
- angular - 在组件之间以角度共享数据
- flutter - 在 Flutter 中使用图像选择器插件选择视频的最大持续时间
- python - 访问 PyTorch 模块 - ResNet18
- c++ - SHGetKnownFolderPath 挂起
- php - Laravel Auth Session 在一段时间后将我注销
- swift - 如何从 Swift 中特定区域的 ARKit 截屏?
- go - 在 Windows 10 的 $ANDROID_HOME/ndk-bundle 和 $ANDROID_NDK_HOME 中找不到 Android NDK
- histogram-equalization - 瞳孔错误 = cv2.equalizeHist(frame[y+(h*0.25):(y+h), x:(x+w)])