作为反应式 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(实体列表) 方法?我想等待每个持久化以确保每个对象都正确持久化。我还注意到一个组合方法,但我不知道如何使用它。
非常感谢您的回复。
你可以像这样使用华丽的存储库:
@ApplicationScoped
public class EmployeeRepository implements PanacheRepository<employeeEntity> {
}
然后你就可以像这样使用它了:
@Inject
EmployeeRepository rep;
// Accepts lists and more
rep.persist(listOfEmployees);
lmk 如果有帮助的话。