0

もちろん、テーブルを参照して複数の行を返すために、Hibernate フレームワークを使用してアルゴリズムをコーディングしました。

ただし、このアルゴリズムはテーブルの内容を消去し、このクエリの戻り値はnullです。

ArrayList<Compte> list = null;
    try {
    Session  session = HibernateUtils.getSession();
    Transaction tx = session.beginTransaction();
    Query q = s.createQuery("from Compte where compte_utilisateuridentifiant = :y");
    q.setString("y", identifiant);
    list = (ArrayList<Compte>) q.list();
    tx.commit();
    } catch (HibernateException e) {

    } finally {

    }

    for (Compte c: list)
        System.out.println("[rib] = " + c.getRib() + "\t" +
                "[title] = " + c.getLibelle() + "\t" +
                "[dateC] = " + c.getDateCréation() + "\t");
    return list;

CFG ファイルは次のとおりです。

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
  <session-factory>
    <!--  Paramètres de connexion à la base de données -->
    <property name="connection.driver_class">org.postgresql.Driver</property>
    <property name="connection.url">jdbc:postgresql://localhost:5432/bh</property>
    <property name="connection.username">postgres</property>
    <property name="connection.password">esct</property>
    <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>

    <!-- Comportement pour la conservation des tables -->
    <property name="hbm2ddl.auto">create</property>

    <!-- Activation : affichage en console, commentées et formatées -->
    <property name="show_sql">true</property>
    <property name="hibernate.format_sql">true</property>
    <property name="use_sql_comments">true</property>

    <!-- Fichiers à mapper -->
    <mapping class="tn.bh.jpa.Compte" />
    <mapping class="tn.bh.jpa.Mouvement_Compte" />
    <mapping class="tn.bh.jpa.Solde" />
    <mapping class="tn.bh.jpa.User" />
    <mapping class="tn.bh.jpa.Virement" />

誰か助けてくれませんか?ありがとうございました :)

4

1 に答える 1

0

以下のプロパティを変更すると役立つ場合があります。

<property name="hbm2ddl.auto">update</property>

理由: 休止状態を再起動してこのクエリを実行していると思います。プロパティが作成に設定されているため、休止状態が再起動すると、完全なスキーマが再度作成され、クエリが実行されます。データがないため(スキーマが新しく作成され、このクエリの実行前にテーブルに挿入/保存されていないため)、結果が得られません。

ここで何かを推測していることに注意してください。

于 2013-07-08T11:02:09.470 に答える