4

私は Hibernate を初めて使用します。データベースからテーブルの値を取得したいのですが、コードはありますが、オブジェクトの値を返します。私のサンプルコードは、

Configuration conf=new Configuration();
    @SuppressWarnings("deprecation")
    SessionFactory sessionfactory=conf.configure().buildSessionFactory();

    Session session=sessionfactory.openSession();
    List maintable = null;
    try
    {
        org.hibernate.Transaction tx = session.beginTransaction();
        Query q = session.createQuery ("select main.empid,main.address from Main as main");
         maintable =q.list();
         Object[] obj=maintable.toArray();

          for(int i=0;i<obj.length;i++)
          {
              System.out.println("column valuse : "+obj[i]);

          }

    tx.commit();
    session.close();

    }
    catch(Exception e1)
    {
        System.out.println("Exception");
    }

複数の列の値を取得する必要があります...どうすればできますか?

4

4 に答える 4

1

これが、Hibernate (またはむしろ JPA) の目的です。通常の値にアクセスする場合は、代わりに JDBC を使用してください。

于 2013-08-29T09:53:19.810 に答える
0

エンティティ クラスからいくつかのフィールド/プロパティを取得するときに非常に便利です。「new」キーワードを使用した上記のクエリは、「Main」タイプのリストを返すことができます。このようなキーワードを使用せずにフィールドを直接指定すると、Object [ ] 型のリストが取得されます。

select new Main(main.empid,main.address) from Main as main

于 2013-08-29T09:56:13.717 に答える
0
select main.empid,main.address from Main as main

empid,addressデータベースのカラム名か、メインクラスのプロパティ名かを確認してください。

これは、エンティティ (つまりメイン) クラスのプロパティ名である必要があります。

于 2013-08-29T09:54:53.757 に答える