java:hibernate + oracle之坑爹的clob

oracle + hibernate 环境,如果表中有 clob字段,hibernate的Entity类,如果Column注解打在私有成员上,则clob私有成员,首字母一定要按字母顺序排在最后,安全的做法是用 "zz"开头

 

原因是 hibernate 在生成insert语句时,会按私有成员来排序,生成类似 insert tableX (A,B,C...) values(?,?,?...) 的sql语句,而在最后提交阶段,insert语句中,clob后面的字段,除了SEQUENCE id外,不允许再有其它非clob型的字段,比如,A是clob字段,而B不是,则执行时会报错:

ORA-24816: 在实际的 LONG 或 LOB 列之后提供了扩展的非 LONG 绑定数据

 

你可能感兴趣的:(Hibernate)