java - 没有实际父实体的一对多模型 JPA

标签 java jpa ehcache

我遇到了一个问题,我有很多表都有 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/

相关文章:

Java 库截断 html 字符串?

spring - 运行测试套件时 Ehcache 关闭导致异常

java - EHCache刷新

Java数组将输入保存到txt文件

java - 显式锁与隐式锁

java - 使用 spring mvc 中的 Display 标签将数据导出到 Excel、PDF、CSV 和 XML 的示例

jakarta-ee - 微服务设计中生成JPA实体

具有参数属性的 Spring 数据 JPA 查询

jpa - 资源的 JNDI 查找失败

java - 在spring cache中通过方法访问返回数据