今天看到一个新人在问开发上的问题,我在网上回复了他,并将此作为案例与各位分享。
12:07:29,187 WARN JDBCExceptionReporter:100 - SQL Error: 2290, SQLState: 23000
12:07:29,187 ERROR JDBCExceptionReporter:101 - ORA-02290: check constraint (TEST.SYS_C0038415) violated
12:07:29,187 WARN JDBCExceptionReporter:100 - SQL Error: 2290, SQLState: 23000
12:07:29,187 ERROR JDBCExceptionReporter:101 - ORA-02290: check constraint (TEST.SYS_C0038415) violated
12:07:29,265 ERROR AbstractFlushingEventListener:324 - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
...
通过这个问题,不仅是回答,更是给我们一些启示:
一、ORACLE有一套
错误代码编号体系的,你的输出中“ORA-02290”说明问题。
二、可以拿这个关键词,去oracle的文档库查看,或是直接上oracle官网文档查看。
三、应该通过java的出错输出的栈信息,尽快地找到引起问题的根源信息点。
希望通过上述分析和思考,给CODING新人以帮助。授人以鱼,不如授人以渔。