我试图通过以下场景简单地从表中获取记录: 用户: abc 是我登录我的数据库的权利,它有权选择。 我试图访问的表是 xyz.customer ,数据库用户 xyz 有此表客户。 我得到的错误是找不到实体。即使我已经在包扫描中明确提到了我的课程。我尝试制作 SqlResultSetMapping ,然后说再找不到。我把它放在另一个工作正常的实体类中,它仍然说没有找到SqlResultSetMapping。我的代码如下:
我调用它的代码并给出错误:
List<SampleClass> sampleClass=
entityIBSManager.createNativeQuery("select * from xyz.customer","CustomerMapping").getResultList();
我的实体类的代码:
@Entity
@Table(name = "CUSTOMER", catalog = "XYZ")
@NamedQuery(name = "SampleClass.findAll", query = "select p from SampleClass p")
@SqlResultSetMapping(
name = "CustomerMapping",
entities = @EntityResult(
entityClass = SampleClass.class,
fields = {
@FieldResult(name = "customerNo", column = "CUSTOMER_ID"),
@FieldResult(name = "countryCode", column = "COUNTRY_CODE"),
@FieldResult(name = "status", column = "STATUS")}))
public class SampleClass implements Serializable {
@Id
@Column(name="CUSTOMER_ID")
private Long customerNo;
@Id
@Column(name="COUNTRY_CODE")
private String countryCode;
@Column(name="STATUS")
private int status;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Long getCustomerNo() {
return customerNo;
}
public void setCustomerNo(Long customerNo) {
this.customerNo = customerNo;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
@Override
public String toString() {
return "PurgeCustomersIBS [customerNo=" + customerNo + ", countryCode=" + countryCode + ", status=" + status + "]";
}
}
在我的数据库表格中,我有国家代码和客户编号的复合组合键。 我已经尝试使用直接调用我的命名查询,它给出了没有找到命名查询的错误。 谢谢你的帮助。
这是我的stacktrace
07:57:12.006 [readTask_Worker-3] ERROR org.quartz.core.JobRunShell - Job DEFAULT.cSVFileJob threw an unhandled Exception: java.lang.IllegalArgumentException: No query defined for that name [PurgeCustomersIBS.findAll] at org.hibernate.jpa.spi.AbstractEntityManagerImpl.buildQueryFromName(AbstractEntityManagerImpl.java:753) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final] at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createNamedQuery(AbstractEntityManagerImpl.java:890) ~[hibernate-entitymanager-5.0.11.Final.jar:5.0.11.Final]