1

SQLクエリからJava hibernateコードを生成できるツールはありますか? (休止状態の逆のように、Javaコードから選択を生成します)すべてのクエリを休止状態に移動するのに役立ちます!

つまり、次のようなパラメーターを選択した場合:

 select ta.id label, ta.nume value
    from ar 
    left outer join ta ta on idp = ta.ID
    where ta.status = 1
    and (dp = 0 OR ps = idps_)
    and status = 1
order by ta.nume;

最終的に次のようなものを取得します。

 DetachedCriteria criteria = DetachedCriteria.forEntityName("ar");
    criteria.createAlias("ta", "ta", Criteria.LEFT_JOIN);
    criteria.add(Restrictions.eq("ta.status", 1));
    Criterion eq = Restrictions.eq("ps.id", idps_);
    Criterion isZero = Restrictions.eq("dp.id", 0);
    Criterion or = Restrictions.or(eq, isZero);
    criteria.add(or);
    criteria.add(Restrictions.eq("status", 1));
    ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.property("ta.id"), "value");
    projectionList.add(Projections.property("ta.nume"), "label");
    criteria.setProjection(Projections.distinct(projectionList));
    criteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
    criteria.addOrder(Order.asc("ta.nume"));

または、マップを出力として使用する同様の何か...

エンティティ/Bean とテーブルのマッピングを保存するパス (または、Bean に注釈が付けられている場合は、Bean へのパス) をツールに提供します。

4

1 に答える 1

0

Hibernate で動作する SQL に似た方言である HQL があります。テーブルのフィールド名ではなく、エンティティのフィールド名を使用します。結合などをサポートします。

実際、Criteria API は結合のサポートが非常に限られています (少なくとも前回使用しようとしたときはそうでした)。Criteria API から HQL へのすべての書き直しを数回完了したため、Criteria API を単純に次のように処理します。オプションはありません。

HQL では、SELECT と WHERE 部分の両方で SQL 関数を使用することもできます。埋め込まれたものと自分で作成したものです。

于 2012-05-23T14:16:39.293 に答える