Hibernate joint interne mapping - chaîne où id
-
03-07-2019 - |
Question
Je voudrais mapper le sql suivant dans NHibernate. Devrai-je créer un objet entité distinct, i.e RoomTypeVO, mappé sur tb_tags pour cela? Toute aide très appréciée.
SELECT dbo.tb_rooms.id, dbo.tb_rooms.name, dbo.tb_tags.name AS 'roomType' DE dbo.tb_rooms INNER JOIN dbo.tb_tags ON (dbo.tb_rooms.typeID = dbo.tb_tags.id)
<id name="id" column="id">
<generator class="native" />
</id>
<property name="name" />
La solution
Si vous utilisez une requête SQL simple, vous n'êtes pas obligé de le faire. Si vous souhaitez utiliser HQL, vous devrez travailler avec une entité.
Mais vous pouvez toujours faire des requêtes SQL directement.
Si vous avez une entité mappée, vous pouvez probablement faire quelque chose comme ceci:
FROM RoomType
Autres conseils
Lorsque vous vous référez à "DE", songez-vous à quelque chose comme ça?
<property name="totalPrice"
formula="( SELECT SUM (li.quantity*p.price) FROM LineItem li, Product p
WHERE li.productId = p.productId
AND li.customerId = customerId
AND li.orderNumber = orderNumber )"/>