【发布时间】:2018-12-24 21:16:24
【问题描述】:
我有一个数据库。具有一对多的关系。
pet 1--* event.
我想进行查询,选择在给定日期发生过事件的所有宠物。 (我使用的是 SQL 日期格式)
到目前为止,我只想能够获取所有实体,用于硬编码日期。
这是我的 PetEntity 表中的参考
@OneToMany
private List<EventEntity> events = new ArrayList();
在我的 EventEntity 中
@ManyToOne
PetEntity pet;
我正在使用一种模式,我使用存储库来处理数据层,然后使用外观来处理任何逻辑(如果有的话)
到目前为止,我已经做了一个这样的方法。
public Set<PetEntity> getPetsWithEvents(Date date){
EntityManager em = emf.createEntityManager();
Set<PetEntity> entities = new HashSet<>();
List<EventEntity> eventEntities=
em.createQuery("SELECT e from EventEntity e where e.date =: date", EventEntity.class).setParameter("date", date).getResultList();
for(EventEntity entity: eventEntities){
entities.add(entity.getPet());
}
return entities;
}
}
有没有办法让这种方法简单地使用一个查询,而不是遍历通风口并找到每只宠物?
【问题讨论】:
-
所以我可以使用一个连接来选择宠物,其中的发泄是一定的价值?
-
-
电话是指约会吗?
-
只选择宠物加入活动
标签: java hibernate jpa repository jpql