Hibernate中@NotFound(action=EXCEPTION)未抛出异常求助
问题求助:关联实体不存在时抛出异常不符合预期
环境信息
- hibernate:5.6.14.Final
- spring:5.3.25
- spring-jpa:2.7.7
- java:Amazon 11 corretto
- Sybase:ASE 12.5.4
数据库现状
使用Sybase ASE 12.5.4,数据库表情况如下:
- PAY表:包含两条记录,分别是('BEL','BELGIUM')、('AND','ANDORRE')
- PERSON表:包含一条记录(1, 'Doe', 'john', 'AAA')
两张表之间没有设置外键约束。
实体类配置
- Pays实体类与PAY表对应
- Person实体类与PERSON表对应,其中Person类的
pays字段标注了@ManyToOne、@NotFound(action = NotFoundAction.EXCEPTION)注解
问题详情
调用PersonOperationsImpl.get(1)方法时,预期会抛出javax.persistence.EntityNotFoundException或Hibernate FetchNotFoundException,但实际抛出的是业务异常“PERSON 1 not found”。实际上PERSON 1这条记录是存在的,只是它关联的PAY记录不存在。并且只有在处理嵌套实体和集合时才会触发这个异常,求问题原因。
内容的提问来源于stack exchange,提问作者jocko
相关产品推荐
相关产品推荐

