Oracle 數(shù)據(jù)庫(kù):
Hibernate annotation :
@Column(name="NUMBERS",columnDefinition="NUMBER(20,3) default 0 ")
public BigDecimal getNumbers() {
return numbers;
}
異常:
Caused by: org.hibernate.HibernateException: Wrong column type: NUMBERS, expected: NUMBER(20,3) default 0
at org.hibernate.mapping.Table.validateColumns(Table.java:261)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1083)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:116)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:317)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:730)
... 122 more
解決方法:
@Column(name="NUMBERS",columnDefinition="number(20,3) default 0 ")
public BigDecimal getNumbers() {
return numbers;
}
原因:hibernate 在列定義選項(xiàng)中,數(shù)據(jù)庫(kù)中的所有類型應(yīng)為小寫number. hibernate在此直接面對(duì)數(shù)據(jù)庫(kù),所以區(qū)分大小寫.