Hibernate映射,其中类在一个表上有多行

时间:2012-03-23 15:37:50

标签: hibernate

我有一个休眠问题。我的表格形式如下:

Id,日期
- -----
测试,2012年1月1日
test,8/1/2012
测试,29/3/2012
test2,7 / 5/2012
test2,1 / 1/2012

主键是这两列的合成。

这映射到表单的对象:

class Coll
{
   String id;
   List<Date> entries;
}

e.g。

aColl
{
   id = test;
   entries = { 1/1/2012, 8/1/2012, 29/3/2012 }
}

如何对对象进行注释以描述此映射?我可以看到如果我有两个表,一个用于id的行,然后是一个带有条目的另一个表,而不是一个表中的所有表,我会怎么做。

1 个答案:

答案 0 :(得分:0)

我有类似的情况,这是hackish。我不熟悉注释,但想法是创建一个伪实体,映射到一行,然后将集合映射到同一个表。

@Table("MyTable")
@Readonly or @SqlInsert("<noop which returns rowcount == 1 eg insert into temp table>"
@SqlWhere("Date = (SELECT MIN(t.Date) FROM MyTable t WHERE t.Id = Id)")
class Coll
{
   @Column(name="id")
   String id;

   @ElementCollection
   @Table("MyTable")
   @Column(name="id")
   @Element(column="Date")
   @Cascade(AllDeleteOrphan)
   @Lazy(false)
   List<Date> entries;
}

随意更正注释