2

我有一个问题,我有许多具有PersonID( PID) 列的表。

我想使用一对多集合PID作为外键将这些实体挂在父实体上,并使用 EhCache 进行缓存。JPA

听起来很简单,问题是我没有父实体!我没有父母的原因是我们正在编写一个报告应用程序,而这PID是我们用来写笔记的东西。

我并不是真的想创建一个新表,而只是存储一个PID用于JPAEhCache 配置的目的。

我想知道我是否可以模仿一个实体或类似的东西,但是对于所有的搜索,我都在画一个空白。

4

1 回答 1

0

没有“虚拟”实体或类似的东西,所以你不能单独在 Hibernate 中做你想要的。

我建议尽管简单地在代码中执行它,在Person两个查询之上的抽象层(基本上是类的 DAO)中,例如:

private static Person lookupPerson(Session s, int pid) {
    List<Note> notes = s.createCriteria(Note.class).add(Restrictions.eq("pid", pid)).list();
    List<Event> events = s.createCriteria(Event.class).add(Restrictions.eq("pid", pid)).list();

    Person p = new Person(notes, events);
    return p;
}

private static Person savePerson(Session s, Person p) {
    for (Note note : p.getNotes()) {
        s.saveOrUpdate(note);
    } 

    for (Event event : p.getEvents()) {
        s.saveOrUpdate(event);
    } 
}
于 2013-03-13T16:55:15.510 回答