使用Hibernate 3.3.1和Hibernate标注3.4,数据库是DB2/400 V6R1,运行在WebSphere 7.0.0.9为什么Hibernates会忽略@Column注释的名称属性?
我有下面的类
@Entity
public class Ciinvhd implements Serializable {
@Id
private String ihinse;
@Id
@Column(name="IHINV#")
private BigDecimal ihinv;
....
}
至于原因,我想不通,休眠忽略指定的列名,而使用“ihinv”生成SQL:
select
ciinvhd0_.ihinse as ihinse13_,
ciinvhd0_.ihinv as ihinv13_,
...
这当然给了我以下错误:
Column IHINV not in table CIINVHD
编辑:我将hibernate的日志级别切换到DEBUG,我看到它不处理该字段的列注释。尝试了几个随机的东西,它只是不起作用。
以前有没有人有过这个问题?我有其他的实体非常相似,他们在他们的数据库字段名称中使用#并且是PK的一部分,我没有这个问题。
在列名中使用散列是否合法?这是什么数据库? – cletus 2010-04-22 15:05:03
@cletus - 问题是数据库是DB2/400。 – jsight 2010-04-22 15:09:22
@cletus - DB2/400,是的,它是合法的。 – svachon 2010-04-22 15:24:55