0

Hibernate に関するこのチュートリアルに従っています。古い buildSessionFactory() をまだ使用しているため、チュートリアルはすでにかなり古いものです。

buildSessionFactory(serviceRegistry)私の質問は、冬眠するのが初めての最新のものをどのように使用するかです。これをどのように実装するかわかりません。これは私のコードです

public static void main(String[] args) {
    // TODO Auto-generated method stub
    UserDetails ud = new UserDetails();
    ud.setId(1);
    ud.setName("David Jone");

    SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(serviceRegistry)
    Session session = sessionFactory.openSession();
    session.beginTransaction();
    session.save(ud);
    session.getTransaction().commit();

}

また、Maven を使用しない Hibernate 4 のチュートリアルをリンクしていただけると、本当に助かります。

4

1 に答える 1

1

あなたは Hibernate を初めて使用し、その基本に苦労しているようです。ドキュメントを読んで概念を学ぶことをお勧めします。

Hibernate Documentationは、いくつかの基本を理解するための出発点として適しています。

また、私はHibernate に関する一連の記事を書いています。

プログラムで SessionFactory にアクセスするには、このチュートリアルで説明されている次の Hibernate Utility クラスを使用することをお勧めします。

Hibernate Hello World の例

package net.viralpatel.hibernate;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration()
                    .configure()
                    .buildSessionFactory();
        } catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

このクラスを取得したら、次のように使用できます。

private static Employee save(Employee employee) {
    SessionFactory sf = HibernateUtil.getSessionFactory();
    Session session = sf.openSession();
    session.beginTransaction();

    Long id = (Long) session.save(employee);
    employee.setId(id);

    session.getTransaction().commit();

    session.close();

    return employee;
}

お役に立てれば。

于 2012-12-12T12:47:27.900 に答える