3

私はdaoに以下のコードスニペットを持っています

 String GET_CUSTOMER="SELECT * from customer where custName=:custName"
  Session session = getHibernateUtil().getSession();
  SQLQuery query = session.createSQLQuery(GET_CUSTOMER);

    query.setParameter("custName", custName);
    query.setResultTransformer(Transformers
        .aliasToBean(Customer.class));

    Customer custData = (Customer) query
        .uniqueResult();//line

Customer テーブルには、一部の値が null である int 列がいくつかあります。1 行目で、Customer.Address のプリミティブ型セッターのプロパティに Null 値が割り当てられましたというエラーが表示されます

null 値を自動的に 0 に変換する hibernate/query/Transformer の方法はありますか? 顧客という1つのテーブルについて言及しましたが、さまざまな列にint値をnullとして含むさまざまな結合テーブルがあるため、各テーブルのクエリで処理したくありません。

更新:-顧客は Hibernate エンティティではありません。int 型のインスタンス フィールドを持つ pojo

4

2 に答える 2

5

Customer テーブルには、一部の値が null である int 列がいくつかあります。

その場合は、Integer代わりにフィールドにすることをお勧めします。おそらく Hibernate を合体させることはできますが(簡単なグローバルな方法ではない可能性があります)、実際にはデータを効果的にマッピングしていません。なぜそのような情報を失いたいのでしょうか?NULL0

于 2013-02-12T07:11:12.097 に答える
0

Hibernateトランスについてはわかりませんが、別の考えがあります。データベースを変更できますか?列をnull許容ではなく、デフォルト値0にすることができます。これにより、データベースに格納できるすべての可能な値をintプリミティブにマップできます。

于 2013-02-12T12:39:13.583 に答える