0

ネイティブSQLコードを使用して、HQlLを使用してDBに単純に挿入しようとしています。

エラーは発生せず、機能しません。どんな助けでも大歓迎です。

ありがとう。

public void AddMedicament(Medicament medicament) {
    System.out.println(medicament.getName());
    // open a database connection
    Session session = FarmacieHibernateUtil.getSessionFactory().openSession();
    Transaction transaction = session.beginTransaction();
    // prepare SQL insert command
    session.createSQLQuery("insert into Medicament(name) values('test')");

    // close the database connection
    session.close();
}
4

4 に答える 4

2

私はHibernateに精通していませんが、コマンドを実行しているのを見ていません。クエリを作成してセッションを閉じるだけです。実行するにはステートメントが必要だと思います。

于 2013-03-25T19:09:03.163 に答える
2

あなたは電話する必要があります

session.executeUpdate() 
transaction.commit(); 

セッションを閉じる前に。

于 2013-03-25T19:09:42.510 に答える
2

createSQLQueryを使用する場合、これはネイティブSQL命令をスローします

オブジェクトテーブル名もMedicamentですか?

于 2013-03-25T19:12:12.607 に答える
2

session.saveOrUpdate(medicament); tx.commit(); 次に、主キーを設定していない場合は挿入され、ドメインオブジェクトにPKを設定している場合は、更新されます。

Spring ORMを使用している場合は、HibernateでQueryを実行する必要はありません。

于 2013-03-25T19:16:37.737 に答える