我遇到了一个问题,我有很多表都有 PersonID
(PID
) 列。
我想使用 PID
作为外键使用 JPA
一对多集合将这些实体从父实体中挂起,并使用 EhCache 进行缓存。
听起来很简单,问题是我没有父实体!我没有 parent 的原因是我们正在编写一个报告应用程序,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);
}
}
关于java - 没有实际父实体的一对多模型 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368686/