0

私は休止状態を学んでおり、SQLからテーブルを読み取る簡単なプログラムを作成しました。
テーブルに 14 個のレコードが含まれているにもかかわらず、クエリの実行後に取得する結果リストのサイズはゼロです。
SQLログを表示するためにshow_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;
}

}

この問題でゼロにすることができないので、助けてください。

4

2 に答える 2

3

私も同じ問題を抱えていました。クエリを作成する前にトランザクションを開始し、データを印刷した後にコミットすることで修正しました。データベースにクエリを実行するためにトランザクションが必要な理由がわかりません。

于 2013-09-30T06:26:54.530 に答える