JPA:“找不到列”虽然JPA创建了表

时间:2012-05-14 16:07:08

标签: java hibernate jpa

我正在尝试从数据库中测试批量读取数据。

我有一个实体,例如:

@Entity
@Table(name = "CLIENT")
public class ClientEntity {
    @Id
    @Column(name = "ID")
    private Long id;

    @Column(name = "START", nullable = false)
    @Temporal(TemporalType.DATE)
    private Date start;
}

在对我的批次进行单元测试时,我将数据插入内存数据库,这要归功于在hibernate.hbm2ddl.import_files上设置hibernate.hbm2ddl.auto选项时使用create选项读取的SQL脚本:

Insert into CLIENT(ID, START) values (1,'2006-02-01')
Insert into CLIENT(ID, START) values (2,'2010-02-01')

我可以在日志中看到表格已正确创建。然而,当我在代码中进一步检索CLIENT时(可能通过一些连接),会引发异常:

ERROR - Column "CLIENTENTI0_.START" not found; SQL statement:
    select cliententi0_.ID as ID1_10_, cliententi0_.START 
        as START2_10_ from CLIENT cliententi0_ [42122-165]

我必须补充一点,当插入到一个现有的Oracle数据库时,代码运行完美!

我的代码出了什么问题?我怎样才能让它发挥作用?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

对我很羞耻。

错误来自于我的批处理的目标是从数据库A读取数据并将数据写入数据库B

为了测试我的批处理,我设置了两个内存实例。但是错误的复制和粘贴使我创建了两次相同的实例...并且由于CLIENT中有一个A表,CLIENT中有另一个B表,检索数据时出错:其中一个表格未正确创建!

希望这可能有助于其他人!