jpa无法执行简单的查询

时间:2012-04-17 18:21:13

标签: java jpa db2 openjpa

我必须使用jpa
从db2中的表中检索数据 毕竟配置和映射
当我尝试使用实体管理器执行查询时,我得到的错误并不知道问题究竟在哪里。  消息错误:Error 500: <openjpa-2.1.1-SNAPSHOT-r422266:1141200 fatal general error> org.apache.openjpa.persistence.PersistenceException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DB2ADMIN.CATEGORIE, DRIVER=4.8.86 {prepstmnt 85179437 SELECT t0.CODE_CAT, t0.LIBELLE_CAT FROM CATEGORIE t0 } [code=-204, state=42704]SQLCA OUTPUT[Errp=SQLNQ1FC, Errd=-2145779603, 0, 0, 0, -10, 0] DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DB2ADMIN.CATEGORIE, DRIVER=4.8.86 DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-204;42704;DB2ADMIN.CATEGORIE, DRIVER=4.8.86 DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-204;42704;DB2ADMIN.CATEGORIE, DRIVER=4.8.86 FailedObject: select c from Categorie c [java.lang.String]

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我通过在我的实体中添加Schema解决了这个问题:

@Entity
@Table(name="MyTable", schema="MySchemaName")
public class MyClass implements Serializable {
...
}

答案 1 :(得分:0)

SQLSTATE messages page开始,第一个错误(SQLCODE = -204,SQLSTATE = 42704)是“检测到未定义的对象或约束名称”。第二个错误(SQLCODE = -727,SQLSTATE = 56098)是“在隐式重新绑定,重新编译或重新生效期间发生错误。”,这可能源于-204

-204通常意味着表名拼写错误,或者由于某种原因无法找到表。我没有看到那里生成的SQL架构(SELECT t0.CODE_CAT, t0.LIBELLE_CAT FROM CATEGORIE t0),所以也许你需要添加它。