2012-02-14 26 views
0

これで、タイトルをちょっと詳しく説明します。私は2つの間の双方向のマッピングとChildEntityを持っているエンティティを持っていると言う:HQL Hibernateは、エンティティがnullのときに新しいエンティティ()を選択します。

+--------+   +-------------+ 
| Entity | <--1.1---> | ChildEntity | 
+--------+   +-------------+ 
    | 
    |   +-----------------+ 
    +---1..n---> | SomeOtherEntity | 
       +-----------------+ 

今、私はこのような何かをするHQLを持って言うことができます:

FROM ChildEntity as ce 
LEFT JOIN ce.entity as e 
LEFT JOIN e.someOtherEntities as soe 
WHERE e.user = :user 
... (and a bunch of other conditions) ... 

だから、の本質に私の問題: ユーザーがEntityオブジェクトとの関連付けをしていない場合があります。その場合はを作成したいと考えています。

SELECT new Entity(....) FROM ..... 

しかし、私は、もし条件としてこれを行うことができますどのような方法があります:

は、私はこのような何かを行うことが可能です知っていますか?同様に、if ce.entity == null then new Entity(ce), else e

何か助けていただければ幸いです。

答えて

0

これはクエリではなくコードで処理する必要があります(それを行う方法も知らない)。 SELECT new Entity(....) FROMフォームでは、エンティティの一部からDTOまたはViewModelを作成し、データ操作は行いません。

results = "FROM ChildEntity as ce WHERE ce.entity = null" // get all without entity 

for(childentity child : results) 
{ 
    child.setEntity(new Entity()); 
} 
session.Flush(); 
// query again with what you have 
関連する問題