enter code here
Ich möchte Beschränkungen für die Liste der Elemente anwenden, so dass nur Elemente aus einem bestimmten Datum abgerufen werden.Eins-zu-viele mit Kriterien
Hier sind meine Zuordnungen:
<class name="MyClass"
table="MyTable" mutable="false" >
<cache usage="read-only"/>
<id name="myId" column="myId" type="integer"/>
<property name="myProp" type="string" column="prop"/>
<list name="items" inverse="true" cascade="none">
<key column="myId"/>
<list-index column="itemVersion"/>
<one-to-many class="Item"/>
</list>
</class>
<class name="Item"
table="Items" mutable="false" >
<cache usage="read-only"/>
<id name="myId" column="myId" type="integer"/>
<property name="itemVersion" type="string" column="version"/>
<property name="startDate" type="date" column="startDate"/>
</class>
ich diesen Code versucht:
Criteria crit = session.createCriteria(MyClass.class);
crit.add(Restrictions.eq("myId", new Integer(1)));
crit = crit.createCriteria("items").add(Restrictions.le("startDate", new Date()));
, die folgende dert führen:
select ...
from MyTable this_ inner join Items items1_ on this_.myId=items1_.myId
where this_.myId=? and items1_.startDate<=?
gefolgt von
select ...
from Items items0_
where items0_.myId=?
Aber was ich brauche, ist so etwas wie:
select ...
from MyTable this_
where this_.myId=?
von
gefolgtselect ...
from Items items0_
where items0_.myId=? and items0_.startDate<=?
Jede Idee, wie ich ein Kriterium auf der Liste der Elemente anwenden kann?