我正在从旧的老式dabatase中读取数据。他们以某种方式使用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的城市时,City实体设置为null。 我怎样才能做到这一点? 我不想在数据库中创建索引为0的新实体。
谢谢
答案 0 :(得分:3)
您可以使用休眠@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加载(即在您可以通过其他方式处理它之前)会发生异常。
答案 1 :(得分:1)
我假设你有
main_model
最简单的解决方案是在城市中添加id = 0的表行,其余为空
并将其发送给您的班级
constant_model
还有更多优雅的解决方案,但这将使您快速入门