- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个 ibatis sql 映射,它们通过子选择链接在一起,如下面的简化示例所示:
<resultMap id="order" class="Order">
<collection property="orderLines" ofType="OrderLine" resultMap=”orderLine”/>
</resultMap>
我有一个订单对象,其中包含由联接和关联返回的行对象的集合。我希望对返回订单行的嵌套关联返回的每一行执行一些行处理程序功能。
我知道这可以通过在调用 spring sqlmapclienttemplate 进行查询时将 IListRowHandler 传递给 queryWithRowHandler 调用来实现OrderLine 对象的列表,但这不允许我在仅对父 sql 映射(本例中为 order)进行调用时在子选择集合上使用行处理程序。
有没有办法以声明方式将 rowhandler 类分配给 ibatis sql 映射中的特定结果映射或 select 语句?因为这是我认为应该存在的功能。或者,我愿意接受关于修改子选择返回的行对象的每个实例的建议因为它们被返回,而不是询问完全构建的订单对象并在事后操作它们。
最佳答案
听起来您正在使用 N+1 选择方法,这可能会导致即使对于简单的查询也会执行大量选择,而这通常是不可取的。请参阅 iBatis 用户指南中的“关联的嵌套结果”部分,该部分提供了该问题的替代解决方案,基本上您可以在主查询中进行联接,然后在 resultMap 级别使用聚合来映射到您的对象模型,因此结果您可以简单地在主查询上使用行处理程序。
关于java - 伊巴蒂斯 : Is there a way of adding a rowhandler in an Ibatis resultmap subselect within the sqlmap xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1882633/
我是一名优秀的程序员,十分优秀!