org.hibernate.exception.SQLGrammarException
JPA と Spring を使用する Java クラスに対して JUnit テストを実行すると、Oracle エラーが発生します。
ORA-00904: "ALIAS"."COLUMN_NAME": invalid identifier
奇妙なことに、JUnit テストは開発データベースに対して実行すると機能しますが、継続的インテグレーション ビルドに使用するデータベース (両方とも Oracle データベース) に対して実行すると失敗します。
したがって、これは、後者の d/b に何かが欠けているか、間違っていることを示唆しています。ただし、参照されているテーブルが両方のデータベースで同一であり、エラーが参照している列 COLUMN_NAME が含まれていることを二重 (および三重) に確認しました。
詳細情報 - JUnit テストで呼び出される DAO Java クラスは、javax.persistence.EntityManager を使用します。
MyClass myObject = entityManager.find(MyClass.class, idNumber);
MyClass JPA エンティティ クラスは、Oracle テーブルにマップされます。
@Configurable
@Entity
@Table(name = "MyTable", schema = "MySchema")
public class MyClass implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQ")
@SequenceGenerator(name = "MY_SEQ", sequenceName = "MY_SEQ", allocationSize = 1)
@Column(name = "ID")
protected BigDecimal id;
@Column(name = "COLUMN_NAME")
private String columnName;
...
}
両方のデータベースのデータベース テーブルのカラム COLUMN_NAME は VARCHAR2(50) で、NULL 可能です。
バージョン:
ジャワ - 1.6
春 - 3.1.1
オラクル - 11.2.0.3.0
ご協力いただきありがとうございます。