我有一个问题,我有许多具有PersonID
( PID
) 列的表。
我想使用一对多集合PID
作为外键将这些实体挂在父实体上,并使用 EhCache 进行缓存。JPA
听起来很简单,问题是我没有父实体!我没有父母的原因是我们正在编写一个报告应用程序,而这PID
是我们用来写笔记的东西。
我并不是真的想创建一个新表,而只是存储一个PID
用于JPA
EhCache 配置的目的。
我想知道我是否可以模仿一个实体或类似的东西,但是对于所有的搜索,我都在画一个空白。
没有“虚拟”实体或类似的东西,所以你不能单独在 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);
}
}