我收到 Oracle 错误/org.hibernate.exception.SQLGrammarException
当我对使用 JPA 和 Spring 的 Java 类运行 JUnit 测试时:
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) 并且可以为空。
版本:
爪哇 - 1.6
春天 - 3.1.1
甲骨文 - 11.2.0.3.0
提前感谢您的任何帮助。