Jpa HTTP状态500-请求处理失败;嵌套异常是异常[EclipseLink-4002]
我现在正在和JPA eclipselink一起工作,并且喜欢用eclipselink连接到我的数据库 我的数据库中有一些用于de表的类,还有一个用于获取条目的查询:Jpa HTTP状态500-请求处理失败;嵌套异常是异常[EclipseLink-4002],jpa,eclipselink,Jpa,Eclipselink,我现在正在和JPA eclipselink一起工作,并且喜欢用eclipselink连接到我的数据库 我的数据库中有一些用于de表的类,还有一个用于获取条目的查询: final Query query = entityManager.createQuery("SELECT q FROM FDC_DBCHANGE q ORDER BY q.CHANGE_ID"); 我为我的桌子上了一些课: FDC_DBCHANGE package com.bechtle.dbchanges.model; im
final Query query = entityManager.createQuery("SELECT q FROM FDC_DBCHANGE q ORDER BY q.CHANGE_ID");
我为我的桌子上了一些课:
FDC_DBCHANGE
package com.bechtle.dbchanges.model;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class FDC_DBCHANGE {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private long CHANGE_ID;
private String CHANGE_NAME;
private String CHANGE_DATE;
private int CHANGE_NUMBER;
@OneToMany(mappedBy = "FDC_DBCHANGE")
private final List<FDC_EXECUTED> checkBoxes = new ArrayList<FDC_EXECUTED>();
public String getChangeName() {
return CHANGE_NAME;
}
public void setChangeName(final String pChangeName) {
CHANGE_NAME = pChangeName;
}
public String getChangeDate() {
return CHANGE_DATE;
}
public void setChangeDate(final String pChangeDate) {
CHANGE_DATE = pChangeDate;
}
public int getChangeNumber() {
return CHANGE_NUMBER;
}
public void setChangeNumber(final int pChangeNumber) {
CHANGE_NUMBER = pChangeNumber;
}
public List<FDC_EXECUTED> getCheckBoxes() {
return checkBoxes;
}
@Override
public String toString() {
return "FDC_DBCHANGE [CHANGE_NAME=" + CHANGE_NAME + ", CHANGE_DATE="
+ CHANGE_DATE + "CHANGE_NUMBER=" + CHANGE_NUMBER + "]";
}
}
和FDC_系统
package com.bechtle.dbchanges.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class FDC_SYSTEM {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int SYSTEM_ID;
private String NAME;
private FDC_EXECUTED fdcexecuted;
public String getName() {
return NAME;
}
public void setName(final String pName) {
NAME = pName;
}
@OneToMany(mappedBy = "FED_SYSTEM")
public FDC_EXECUTED getExecuted() {
return fdcexecuted;
}
public void setExecuted(final FDC_EXECUTED pExecuted) {
fdcexecuted = pExecuted;
}
}
当我在Tomcat上运行它时,出现以下异常:
org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是异常[EclipseLink-4002](Eclipse持久性服务-2.5.0.v20130507-3faac2b):org.Eclipse.Persistence.exceptions.DatabaseException
内部异常:java.sql.SQLSyntaxErrorException:ORA-00904:“FDC_DBCHANGE_CHANGE_ID”:无效标识符
错误代码:904
调用:从执行的FDC_中选择条目_ID、FDC_DBCHANGE_CHANGE_ID、FDC_SYSTEM_SYSTEM_ID(FDC_DBCHANGE_CHANGE_ID=?)
绑定=>[1参数绑定]
Query:ReadAllQuery(name=“checkbox”referenceClass=FDC\u EXECUTED sql=“从执行的FDC\u中选择条目ID、FDC\u DBCHANGE\u CHANGE\u ID、FDC\u SYSTEM\u SYSTEM\u ID(FDC\u DBCHANGE\u CHANGE\u ID=?))
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:932)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:816)
javaservlet.http.HttpServlet.service(HttpServlet.java:620)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801)
javaservlet.http.HttpServlet.service(HttpServlet.java:727)
Eclipselink尝试从执行的FDC_中运行SQL语句SELECT ENTRY_ID、FDC_DBCHANGE_CHANGE_ID、FDC_SYSTEM_SYSTEM_ID,其中(FDC_DBCHANGE_CHANGE_ID=?)
不是从FDC中选择条目ID,更改ID,系统ID,而是在其中执行(更改ID=?)
我不知道为什么
我希望有人能帮助我,并为我糟糕的英语道歉
黑曜石战士好的,问题解决了,它的原因是日食需要一个我没有接触到的OID,这就是问题所在
package com.bechtle.dbchanges.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class FDC_SYSTEM {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int SYSTEM_ID;
private String NAME;
private FDC_EXECUTED fdcexecuted;
public String getName() {
return NAME;
}
public void setName(final String pName) {
NAME = pName;
}
@OneToMany(mappedBy = "FED_SYSTEM")
public FDC_EXECUTED getExecuted() {
return fdcexecuted;
}
public void setExecuted(final FDC_EXECUTED pExecuted) {
fdcexecuted = pExecuted;
}
}