2

データベースからデータを取得するために条件が使用されます。mySql個別にテストされ、レコードが正しくロードされる SQL クエリを完全に生成します。
ただし、使用Criterial.list()すると空のリストが表示されます。

DB 接続を確認しましたが、すべて正しいです。この問題の原因は何ですか?


更新
された私のコードは次のとおりです。

accCr = DetachedCriteria.forClass(TSESpotInvestorAccount.class, "acc");
accCr.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
accCr.add(Restrictions.eq("exchangeDepositNo", filter.getBc()));
accCr.setProjection(Projections.id());
List accIds = getHibernateTemplate().findByCriteria(accCr);
4

1 に答える 1

0

あなたのコードはあまり意味がありません:

accCr.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);

上記の行は、クエリがエンティティ (潜在的に結合されたエンティティを含む) を返すことになっており、Hibernate が個別のエンティティのみを返す必要があることを示しています。

accCr.setProjection(Projections.id());

上記の行は、クエリが 1 つのスカラー列 (ルート エンティティの ID) のみを返さなければならないことを示しています。

ID のリストが必要な場合は、別個のルート エンティティ結果トランスフォーマーを設定しないでください。

于 2013-03-03T09:00:21.040 に答える