hibernate中间表如何配置及操作

a1522609810 2012-03-19 04:05:39
各位大神,我是java初级程序员,在项目中遇到一个问题:
我有两个表——用户表和商品表,和一个中间表——订单表
订单表中我设计了订单号、订单日期、订货者id和商品id、以及订货数量;商品表是有商品的id、商品卖家的id和一些商品必须字段;用户表里就是用户id和一些用户必须字段。
这样配置起来的难度在于,用户和商品用set进行映射后映射出来的中间表中间表就只有订货者id和商品id,且订单id被hibernate用那两个id做的联合主键取代。
我想要的功能是订单字段不要少,那么中间表的实体对象该如何配置?
项目需求是根据用户的id可以查到他订了那些商品,以及根据商品id查出有谁订了这件商品。这些功能都是比较复杂的。
现在网上很少有人可以解决这个问题,我想站出来请大家让这个问题有个圆满的答案。

我的用户实体和商品实体的映射是这样的
用户表xml配置:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="hzqk.mysql.jyz.domain">
<class name="Commodity" table="shop_commodity" lazy="false">
<id name="id" column="commodityid">
<generator class="native"></generator>
</id>
<property name="commodityname"></property>
<property name="price"></property>
<property name="commoditycount"></property>
<property name="commodityfactory"></property>
<property name="picturepath"></property>
<property name="commoditytype"></property>
<many-to-one name="user" column="commodityownerid"></many-to-one>
<set name="users" table="shop_order" lazy="false">
<key column="commodityid" />
<many-to-many class="User" column="userid" />
</set>
</class>
</hibernate-mapping>


商品表xml配置:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="hzqk.mysql.jyz.domain">
<class name="User" table="shop_user" lazy="false">
<id name="id" column="userid">
<generator class="native"></generator>
</id>
<property name="username" unique="true"></property>
<property name="password"></property>
<property name="usertype"></property>
<set name="commoditys" table="shop_order" lazy="false">
<key column="userid" />
<many-to-many class="Commodity" column="commodityid" />
</set>
</class>
</hibernate-mapping>

我觉得这样配置十分容易出错,将来程序扩展性太差了,有别的更好、更正确的办法,我会非常高兴你们的参与。
...全文
75 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1522609810 2012-03-19
  • 打赏
  • 举报
回复
标题中的另外一个问题是——中间表如何进行增删改查?
我现在纠结的就是这个问题。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧