Java Hibernate服务类

时间:2009-11-20 10:40:12

标签: java hibernate persistence

我对Java Hibernate有一个痛苦的问题。 我的模型中有自己的POJO类,我想从该类的实例提交查询到我的关系数据库的表。问题是,我想向不同的表提交几个不同的查询。例如: 我有一个巴士班,代表公共汽车。我有一个BusesOnTheLine表,一个BusesWaitingForRepair表。现在有时候我必须在BusesOnTheLine表中添加一个新行,有时候添加到另一个表。每个表都有自己的方案,所以我没有(双射)一对一的对应关系。 我想应该有一个像.NET一样的服务类,它可能有一个方法用于每个查询与HQL(Hibernate Query Langugage),但我无法找到它。 :( 有关解决方案的任何想法吗?

2 个答案:

答案 0 :(得分:2)

对我来说,数据库中的设计听起来很糟糕。这不是Hibernate的缺陷。

我同意Bus对象;我同意BUS表。但为什么你有几个看起来像不同状态的公交车的桌子?

我建议使用BUS_STATUS表,其中包含“ON_THE_LINE”,“WAITING_FOR_REPAIR”等行,以及BUS表中指向当前状态主键的外键。在两者之间加入。

现在你的Bus类与Status对象有一对一的映射,你已经完成了设置。

答案 1 :(得分:0)

如果你有几个表都代表不同状态的总线,那么你可能正在寻找使用每个子类策略的表的继承。也就是说,总线的每个状态可能是总线的子类,然后当您保存总线时,休眠会为您插入右表。在查询时,您可以查询总线,在这种情况下,您可以获得所有总线,或者您可以查询BussesOnTheLine,在这种情况下只能获取这些总线。