【发布时间】:2011-02-11 03:03:09
【问题描述】:
使用 Hibernate 3.3.1 和 Hibernate Annotations 3.4,数据库是 DB2/400 V6R1,在 WebSphere 7.0.0.9 上运行
我有以下课程
@Entity
public class Ciinvhd implements Serializable {
@Id
private String ihinse;
@Id
@Column(name="IHINV#")
private BigDecimal ihinv;
....
}
由于我想不通的原因,Hibernate 忽略了指定的列名并使用 'ihinv' 生成 SQL:
select
ciinvhd0_.ihinse as ihinse13_,
ciinvhd0_.ihinv as ihinv13_,
...
这当然会给我以下错误:
Column IHINV not in table CIINVHD
编辑:我将hibernate的日志级别切换为DEBUG,我看到它没有处理该字段的列注释。尝试了几个随机的东西,它只是不起作用。
以前有人遇到过这个问题吗?我有其他实体在它们的数据库字段名称中使用 # 的方式非常相似,并且它们是 PK 的一部分,我对它们没有这个问题。
【问题讨论】:
-
在列名中包含哈希是否合法?这是什么数据库?
-
@cletus - 问题说数据库是 DB2/400。
-
@cletus - DB2/400,是的,它是合法的。
标签: java hibernate annotations websphere db2-400