Quand je lance la requête suivante, j'obtiens une QueryException :
Exception in thread "main" org.hibernate.QueryException: could not resolve property: company.id of: dto.Price [FROM dto.Price AS price WHERE price.company.id=1234 AND price.company.saleoffice.id=1]
Code : Sélectionner tout - Visualiser dans une fenêtre à part FROM dto.Price AS price WHERE price.company.id=1234 AND price.company.saleoffice.id=1
En revanche, cette requête équivalente fonctionne correctement :
Son seul désavantage est qu'elle génère une jointure pour recuperer des donnees qui ne me servent pas (ma table price contient deja les champs company_id et sale_office_id)
Code : Sélectionner tout - Visualiser dans une fenêtre à part FROM dto.Price AS price JOIN price.company as company WHERE company.id=1234 AND company.saleOffice.id=1
Voila les mappings de Price et Company :
Price
Company
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <class name="dto.Price" table="price"> <composite-id> <key-property name="productCode" column="product_code"/> <key-property name="companyId" column="company_id"/> <key-property name="saleOfficeId" column="sale_office_id"/> </composite-id> <many-to-one name="product" class="dto.Product" insert="false" update="false"> <column name="product_code"/> <column name="sale_office_id"/> </many-to-one> <many-to-one name="company" class="dto.Company" insert="false" update="false"> <column name="company_id"/> <column name="sale_office_id"/> </many-to-one> blablabla... </class>
Quelqu'un comprend ce qui se passe ? une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <class name="dto.Company" table="company"> <cache usage="read-write"/> <composite-id> <key-property name="id" column="id"/> <key-many-to-one name="saleOffice" class="dto.SaleOffice" column="sale_office_id"/> </composite-id> blabla... </class>
Partager