0

私はネイティブクエリを使用してデータベースからデータを取得し、それらを次のようなフロート値を含むオブジェクトに追加しています。

select tons, delivered_tons from contract where id = 1

createSQLQuery() を使用してクエリを実行する

次のようなオブジェクト配列を返します。

Object[] result = (Object[])query.uniqueResult();

それらを私のオブジェクトにキャストします

A a = new A((Float)result[0],(Float)result[1]);

問題は、クエリの戻り値の型 (float か double) がわからないことです。では、休止状態には戻り値の型を制御する方法がありますか?

4

1 に答える 1

1

SQL の代わりに HQL を使用した場合、Hibernate は選択した型を使用してエンティティ内の列をマップします。

これらのフィールドを含む契約エンティティがあると仮定します。

@Entity
public class Contract {
    @Column(name = "tons")
    private Float tons;

    @Column(name = "delivered_tons")
    private Float deliveredTons;

    ...
}

HQL クエリを実行するだけです。

select c.tons, c.deliveredTons from Contract c where c.id = :id

2 つの Float を含む配列を確実に取得できます。

とはいえ、このような単純なクエリの場合は、単に使用してみませんか?

Contract c = (Contract) session.get(Contract.class, id);

次に、エンティティから必要なフィールドを取得しますか?

于 2013-03-23T10:29:24.500 に答える