使用反应式夸库斯和休眠/华丽来坚持多个实体

问题描述 投票:0回答:1

作为反应式 quarkus/hibernate/panache 的新手,我很感激您对如何将循环中的实体持久保存到数据库的反馈。

假设在某个时候我们有一个部门列表,并且我们想要为每个部门存储一个新员工

for (Department dep: office.getDepartments()) {
    Employee emp = new Employee();
    emp.setName("...");
    emp.setDepartment(dep);
    emp.persistAndFlush(); //no return uni?
}
//more statements here that will eventually return a uni...

这里的问题是如何处理循环内的返回uni。上述语句返回警告“‘PanacheEntityBase.persistAndFlush()’的结果被忽略,值永远不会用作发布者”。 return 语句将打破循环。

是否有 persistAndFlushAll(实体列表) 方法?我想等待每个持久化以确保每个对象都正确持久化。我还注意到一个组合方法,但我不知道如何使用它。

非常感谢您的回复。

reactive-programming persistence quarkus-panache
1个回答
0
投票

你可以像这样使用华丽的存储库:

@ApplicationScoped
public class EmployeeRepository implements PanacheRepository<employeeEntity> {
   
}

然后你就可以像这样使用它了:

@Inject
EmployeeRepository rep;

// Accepts lists and more
rep.persist(listOfEmployees);

lmk 如果有帮助的话。

© www.soinside.com 2019 - 2024. All rights reserved.