对于一对多的关系 实体类写法

如 order 和 orderline :

一对多

在order实体里的orderline 属性 用集合 set<E>

private Set<orderline > orderLines = new HashSet<orderline >();

在orderline 的实体里 order 属性

用对象 order

private Order order;

对应的hibernate 配置文件

order.hbm.xml:

<set name="orderLines" inverse="true" lazy="false" cascade="all" fetch="join">

<key column="ORDERID"></key>

<one-to-many class="ects.model.entity.OrderLine"/>

</set>

orderline.hbm.xml:

<many-to-one name="order" column="ORDERID" fetch="join" cascade="all" ></many-to-one>

在 MyBatis 中,一对关系通常是通过嵌套结果集实现的。以下是一对关系写法示例: 1. 定义实体类(Entity): ```java public class Order { private int id; private String orderNo; // 其他属性 private List<OrderItem> orderItems; // getter 和 setter 方法 } public class OrderItem { private int id; private String itemName; // 其他属性 // getter 和 setter 方法 } ``` 2. 编写映射文件(Mapper XML): ```xml <resultMap id="orderResultMap" type="Order"> <id property="id" column="id" /> <result property="orderNo" column="order_no" /> <!-- 其他属性映射 --> <collection property="orderItems" ofType="OrderItem" resultMap="orderItemResultMap" /> </resultMap> <resultMap id="orderItemResultMap" type="OrderItem"> <id property="id" column="id" /> <result property="itemName" column="item_name" /> <!-- 其他属性映射 --> </resultMap> <select id="getOrderWithItems" resultMap="orderResultMap"> SELECT o.id, o.order_no, oi.id, oi.item_name FROM orders o LEFT JOIN order_items oi ON o.id = oi.order_id WHERE o.id = #{orderId} </select> ``` 3. 编写Mapper接口: ```java public interface OrderMapper { Order getOrderWithItems(int orderId); } ``` 4. 使用Mapper接口进行查询: ```java Order order = orderMapper.getOrderWithItems(1); ``` 以上示例中,通过嵌套结果集的方式,将一对关系的数据映射到了Order对象的orderItems属性中。注意,需要在映射文件中定义两个resultMap,一个用于映射Or
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值