处理遗留数据库时,Hibernate会对丢失的行进行扼流

lia*_*iam 14 java mysql hibernate legacy-database

我试图在遗留数据库(仍然有遗留的PHP客户端)上实现hibernate,并且遇到了一些问题,因为编写原始应用程序的人不知道他们在做什么.

设置数据库以使任何列都不可为空,因此如果没有记录,则将外键默认为0.此外,它们在表上没有正确的外键,因此有一些具有无效ID.我没有选项来更改架构或null相应的列.

这是我从hibernate得到的错误:

Caused by: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.tv.platform.domain.Program#0]
Run Code Online (Sandbox Code Playgroud)

我想要的是一种优雅的方式来处理这个问题,如果该行无效或不存在,该字段将为空,但我没有运气找到如何在文档中处理这个问题.

有小费吗?

lia*_*iam 16

注释:@NotFound(action = NotFoundAction.IGNORE)

完全是我在找什么.我在这里找到了它:

Hibernate多对一外键默认值0