簡體   English   中英

Hibernate 查詢結果為空

[英]Hibernate query result is empty

我正在學習休眠並制作了一個簡單的程序來從我的 sql 中讀取一個表。
即使表中有 14 條記錄,我在執行查詢后得到的結果列表的大小為零。
我制作了 show_sql 來查看 sql 日志,我得到了這個:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select insurance0_.lngInsuranceId as col_0_0_ from insurance insurance0_

我也附上代碼以供參考

Session session = new Configuration().configure("Hibernate.cfg.xml").buildSessionFactory().openSession();

    String SQL_QUERY ="from Insurance insurance";
    Query query = session.createQuery(SQL_QUERY);
    System.out.println("size of list is: "+query.list().size());
    List resultList = query.list();

    for (Iterator iterator = resultList.iterator(); iterator.hasNext();) {
        Insurance object = (Insurance) iterator.next();
        System.out.println("insurance name is: "+object.getInsuranceName());
        System.out.println("insurance amount is: "+object.getInvestementAmount());

    }
    session.close();

實體類:

public class Insurance {

  private long lngInsuranceId;
  private String insuranceName;
  private int investementAmount;
  private Date investementDate;
public long getLngInsuranceId() {
    return lngInsuranceId;
}
public void setLngInsuranceId(long lngInsuranceId) {
    this.lngInsuranceId = lngInsuranceId;
}
public String getInsuranceName() {
    return insuranceName;
}
public void setInsuranceName(String insuranceName) {
    this.insuranceName = insuranceName;
}
public int getInvestementAmount() {
    return investementAmount;
}
public void setInvestementAmount(int investementAmount) {
    this.investementAmount = investementAmount;
}
public Date getInvestementDate() {
    return investementDate;
}
public void setInvestementDate(Date investementDate) {
    this.investementDate = investementDate;
}

}

請幫忙,因為我無法在這個問題上歸零?

我有同樣的問題。 我通過在創建查詢之前開始事務並在打印數據之后提交來修復它。 我不知道為什么我需要有一個事務來查詢數據庫。

測試遇到同樣的問題:

@Test
public void readMessage() {
    try (Session session = factory.openSession()) {
        List<Message> list = session.createQuery("from Message", Message.class).list();
        assertEquals(list.size() > 3, true);
    }
}

使用: <property name="hbm2ddl.auto">update</property>在您的hibernate.cfg.xml文件中。

參考: Hibernate hbm2ddl.auto 配置的可能值是什么,它們有什么作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM