Hibernate查询使得不同的用户表数据无法正常工作

时间:2018-06-07 12:20:34

标签: java sql hibernate jpa

我试图通过以下场景简单地从表中获取记录: 用户: 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] 

0 个答案:

没有答案