Java 如何返回一组持久化对象?
我有一个类,其中包含通过实体管理器创建客户对象的方法。我想添加另一个方法,它将返回一组创建的对象;在我的情况下,我该怎么做?例如,我有以下代码:Java 如何返回一组持久化对象?,java,spring,jpa,entitymanager,Java,Spring,Jpa,Entitymanager,我有一个类,其中包含通过实体管理器创建客户对象的方法。我想添加另一个方法,它将返回一组创建的对象;在我的情况下,我该怎么做?例如,我有以下代码: public class DefaultCoreRepository implements CoreRepository { private EntityManager entityManager; @PersistenceContext(unitName = "crm-db") public void setEntityManager(Entit
public class DefaultCoreRepository implements CoreRepository {
private EntityManager entityManager;
@PersistenceContext(unitName = "crm-db")
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
private <T> T persist(T entity) {
entityManager.persist(entity);
return entity;
}
public void createCustomer(Customer customer) {
persist(customer);
}
public Set<Customer> getCustomers() {
//Code to be written here
}
公共类DefaultCoreRepository实现CoreRepository{
私人实体管理者实体管理者;
@PersistenceContext(unitName=“crm db”)
公共无效设置EntityManager(EntityManager EntityManager){
this.entityManager=entityManager;
}
私有T持久化(T实体){
entityManager.persist(实体);
返回实体;
}
公共无效createCustomer(客户){
坚持(客户);
}
公共集getCustomers(){
//要在此处编写的代码
}
一种可能的方法是
entityManager.createQuery("SELECT customer FROM Customer customer",
Customer.class)
.getResultList();
您可以在实体管理器中创建选择查询,以使用JPA获取结果列表。您可以编写如下查询并将列表转换为集合:
public Set<Customer> getCustomers() {
return new HashSet<Customer>(createQuery("select c from Customer c", Customer.class).getResultList());
}
publicset getCustomers(){
返回新的HashSet(createQuery(“从客户c中选择c”,Customer.class).getResultList());
}
自JPA 2.2以来,您还可以使用Java 8流API:
entityManager.createQuery("SELECT customer FROM Customer customer", Customer.class)
.getResultStream()
.collect(Collectors.toSet());
我建议您先阅读官方JPA教程:我在开始这个项目之前已经做了。谢谢。这是如何工作的?我的意思是,实体管理器在哪里存储所有持久化对象?谢谢您的回答。它从您的数据库中获取客户对象,您可以在那里阅读更多相关内容: