Hibernate3.3.1およびHibernateAnnotations3.4を使用すると、データベースはDB2 / 400 V6R1であり、WebSphere7.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
編集:休止状態のログレベルをDEBUGに切り替えましたが、そのフィールドの列注釈が処理されないことがわかります。それがうまくいかないいくつかのランダムなことを試しました。
誰かが以前にこの問題を抱えていましたか?データベースフィールド名で#を使用している点で非常によく似ていて、PKの一部である他のエンティティがありますが、この問題はありません。