发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

求助:Hibernate映射问题

         
2008-07-16 22:02
赞助商链接

我在项目中遇到了这种情况,请教怎么设计hibernate映射文件
public class Order{
private int id;
.
.
.
private User user;
private List<LineItem> lineItems;
}

public class LineItem{
private int id;
private Product product;
private int quantity;
.....
}

public class Product{
private int id;
.......
}
定单Order和User是一对一的关系,在数据库order中有userid外键和user的主键id对应,这个简单;
数据库的设计者在order表中用productid作为外键存储所定产品,而在Order中产品是封装在LineItem类中的,表示产品和所定的数量等信息,在Order中没有直接的Product信息,中间好象隔了一个对象,Order和产品信息是一对多关系,请问这个需求怎么写Order和Product间一对多的映射文件。谢谢大家!

2008-07-18 16:26

Order和LineItem是1:N,而LineItem和Product是1:1关系,而Orde和Product是没有直接的1:N关系的。
这些都从业务上了解,订单上的商品首先是一行行的,每行lineitem对应一个商品,所以,你找订单的商品,首先找到订单,再一行行去从lineitem去找,在行里才找到Product,这些自然的关系说明Orde和Product是没有直接的1:N关系的。

使用hibernate就是要学会用自然贴近业务的思维去考虑思维,不能纸上谈兵,自己绕自己。

2008-07-19 16:43

谢谢老师的回答,我知道Order和Product是没有直接的1:N关系,而Order和LineItem具有1:N的关系,现在我只能把Order和LineItem映射为one-to-many的关系,但在数据库中是没有LineItem这张数据表的,不知道怎么写配置文件,请教您怎么写,谢谢!

2008-07-23 15:42

>但在数据库中是没有LineItem这张数据表的,不知道怎么写配置文件
没有,就创建它,或者合并到其他表中,表是输出结果,就象1+1=2 其中2是结果,是服从模型设计的。

hibernate      关联模型     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com