多个产品表使用一个订单表在Hibernate中的设计问题
由于产品内容的很大差异,使用了多个表保存不同的产品
产品表1:
product_1
--- product_id (pk)
--- product_name
--- other_info
....
产品表2:
product_2
--- product_id (pk)
--- product_name
--- other_info
...
等等其它产品表
使用同一个表来保存所有产品的订单
order
--- order_id (pk)
--- product_table
--- product_id (FK)
--- other_column
...
order.product_id和product_1 , product_2的product_id是多对一的关系
在order.hbm.xml中定义
<many-to-one name="product1" class="test.hibernate.Product1">
<many-to-one name="product2" class="test.hibernate.Product2">
可以实现操作,但使用起来很别扭,必需显式的指定产品类型
newOrder.addProduct1Order(),newOrder.addProduct2Order(),....
读订单时:
aOrder.getProduct1Order(), aOrder.getProduct2Order(),....
请教各位道友:有没有一个优雅的解决方法?
谢谢了!