小弟新学,多多指教。
摇奖系统领域模型:User(用户),Award(奖品)。双向多对多关联,ORM用hibernate实现。
hibernate在运行时,会生成3张表,分别为:user,award,user_award。
现在客户提出要求:取得User获奖时间。 在传统的面向数据库设计中,很自然的办法是在user_award中添加一个字段time。然后在程序中用sql语句查询得到。 但是在面向对象的设计中,怎么实现这个功能?同样需要在user_award中插入字段吗?如果是,怎么获取这个字段呢?(用HQL的话)。
你可以这样去思考,
建立两个一对一的关系
1.用户与抽奖结果 (一个用户只可能与一个抽奖结果有关)
2.奖品与抽奖结果 (一个奖品只可能与一个抽奖结果有关)
抽奖结果Class
public class Result{
private int resutlId;
private User user;
private Award award;
private Date time;
get ...
set ...
}
Result 基于 user_award 表 ,HQL自然就很容易写的,不知是否清楚.