【发布时间】:2017-11-28 15:04:07
【问题描述】:
我正在使用 Spring Boot 1.5.3、Spring Data REST、Spring HATEOAS、Hibernate。 Spring Data REST 以一种漂亮的方式管理异常,返回格式良好的 JSON 对象,如下所示:
{
"timestamp": "2017-06-24T16:08:54.107+0000",
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.dao.InvalidDataAccessApiUsageException",
"message": "org.hibernate.TransientPropertyValueException: Not-null property references a transient value - transient instance must be saved beforeQuery current operation : com.test.server.model.workflows.WorkSession.checkPoint -> com.test.server.model.checkpoints.CheckPoint; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: Not-null property references a transient value - transient instance must be saved beforeQuery current operation : com.test.server.model.workflows.WorkSession.checkPoint -> com.test.server.model.checkpoints.CheckPoint",
"path": "/api/v1/workSessions/start"
}
我需要本地化异常消息,并且我想保持 Spring Data REST 的相同 JSON 格式,并看看它们是如何创建异常对象的。 我正在寻找在源代码中创建异常的代码,但我找不到。也许ExceptionMessage 有用,但它没有最终到达用户的对象的结构。
创建异常的点在哪里?
【问题讨论】:
-
从异常消息看来,异常是在保存阶段创建的。似乎与数据库中非真正创建的对象有某种关系
-
@AngeloImmediate 我不关心异常本身。我对 Spring Data REST 如何以这种方式创建 JSON 对象感兴趣。与异常无关,JSON 对象始终如此。我想找到创建该对象的代码。谢谢
标签: java spring spring-mvc spring-data-rest