【问题标题】:Hibernate inner join mapping - string where idHibernate 内部连接映射 - id 的字符串
【发布时间】:2008-12-31 12:46:46
【问题描述】:

我想在 NHibernate 中映射以下 sql。 我是否需要创建一个单独的实体对象,即 RoomTypeVO 映射到 tb_tags 来执行此操作? 非常感谢任何帮助。

选择 dbo.tb_rooms.id, dbo.tb_rooms.name, dbo.tb_tags.name 作为“房间类型” 从 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" />

【问题讨论】:

    标签: nhibernate hibernate


    【解决方案1】:

    如果你是一个直接的 sql 查询,你不必这样做。如果您想使用 HQL,则必须使用实体。

    但是,你总是可以直接进行 sql 查询。

    如果你有一个映射实体,那么你可能只需要这样做:

    FROM RoomType 
    

    【讨论】:

      【解决方案2】:

      当您提到“FROM”时,您是否想到了类似的东西?

      <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 )"/>
      

      【讨论】:

      • 我认为他指的是 HQL 查询的语法,这使得“select”子句是可选的。如果你想要的是一个实体的集合,那么“来自 EntityName”就足够了。
      • 是的,我在 HQL 中显示查询。我有很多映射,我还没有使用公式,但是要得到上面显示的“总数”,那么公式会很好。
      最近更新 更多