在我的應用程序中,當引發違規密鑰時,我想獲取約束名稱,但我找不到任何方法來獲取此信息。由「getMessage()」返回的消息是非常概括的,我需要有關錯誤的更多信息才能向最終用戶發出可定製的錯誤消息。如何獲取org.springframework.dao.DataIntegrityViolationException中的約束名稱?
堆棧跟蹤:
84732 [http-8080-1] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 23505
84732 [http-8080-1] ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: duplicate key value violates unique constraint "ix_tb_oferta_vaga"
Detalhe: Key (cd_pj, cd_curso)=(680, 29) already exists.
187405 [http-8080-1] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 23505
187405 [http-8080-1] ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: duplicate key value violates unique constraint "ix_tb_oferta_vaga"
Detalhe: Key (cd_pj, cd_curso)=(680, 29) already exists.
的的getMessage():
could not insert: [br.gov.ce.seduc.estagio.model.bean.OfertaVaga]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [br.gov.ce.seduc.estagio.model.bean.OfertaVaga]
感謝。
亞瑟
這將在格式返回一個字符串'錯誤:重複鍵值違反唯一約束「uk_meb3tm159kt0clyot5mmv8oht」 詳細信息:按鍵(ORGANIZATION_NAME)=(別墅學院QI校園)已經存在。如果他們想爲最終用戶提供消息,這將不會有幫助 –