我必须使用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]
答案 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
),所以也许你需要添加它。