V HQL funguje takove odkazovani na sloupce z joinovatelnych trid (tabulek) funguje. Ale v Criteria API musi ten join provest explicitne volanim metody .createCriteria

List cats = sess.createCriteria(PriceListItem.class) .createCriteria("article")
       .add( Restrictions.eq("article.logicGroup", Long.valueOf(logicGroup)))
   .list();


 Lukas



Petr Burdik napsal(a):
Ahojte,
mam aktualne problem se kterym si nevim moc rady.

Popis problemu
--------------
Mam dve tridy. Article (zbozi) a pricelistitem (jeden radek generovaneho ceniku). Pristupuji pres hibernate criteria nasledujicim zpusobem:

query.add(Restrictions.eq("article.logicGroup", Long.valueOf(logicGroup)));

Vyhodi hlasku
-------------
2007-04-19 07:15:42,600 ERROR [net.itsynapse2.ecomerce.data.PriceListDAO] - <pocet vektoru [getPriceListItemsByParameters]: 1> 2007-04-19 07:15:44,649 ERROR [net.itsynapse2.ecomerce.data.PriceListDAO] - <getPriceListItemsByParameters[]could not resolve property: article.logicGroup of: net.itsynapse2.ecomerce.entity.priceList.PriceListItem> org.hibernate.QueryException: could not resolve property: article.logicGroup of: net.itsynapse2.ecomerce.entity.priceList.PriceListItem

PriceListItem ma jednu property article ve ktere je reference na objekt article. V jinych situacich mi to funguje bez problemove. Mate prosim nekdo napad co s tim?


Jsou ve dvou ruznych packages a tedy mam dva mapovaci soubory ( dam sem zkracene):
-------------------------------------------------------------

<hibernate-mapping package="net.itbridge.itsynapse2.ecomerce.entity.article">
    <class name="Article" table="ecomerce_article">
<id name="oid" column="aoid" type="long"><generator class="increment"/></id>
        <property name="artIdSupplier" type="string"/>
        <property name="name" type="string"/>
        <property name="priceGroup" type="long"/>
        <property name="logicGroup" type="long"/>
    </class>
</hibernate-mapping>

<hibernate-mapping package="net.itsynapse2.ecomerce.entity.priceList">
    <class name="PriceListItem" table="ecomerce_priceList_items" >
<id name="itemId" column="itemId" type="long"><generator class="increment"/></id> <many-to-one name="priceList" class="net.itsynapse2.ecomerce.entity.priceList.PriceList" cascade="none" outer-join="true" fetch="join" update="true" insert="true" column="ploid" /> <many-to-one name="article" class="net.itbridge.itsynapse2.ecomerce.entity.article.Article" cascade="none" outer-join="true" fetch="join" update="true" insert="true" column="aoid" />
    </class>
</hibernate-mapping>


Mate prosim nejaky napad cim to muze byt? Laboruju s tim uz tri hodiny. Takoveto dotazy jinak normalne tvorim.

Pet

--Using Opera's revolutionary e-mail client: http://www.opera.com/mail/


Odpovedet emailem