我正在为一个使用 spring 作为后端的学校项目创建一个网站。当新数据保存到特定表时,我试图将数据插入数据库。我试过使用@HandleAfterCreate 和@PrePersist,但都没有用。我对春天不是很有经验。老师让我们用它,现在我不知道做什么。@HandleAfterCreatepublic void handlePersonBeforeCreate(Person person){ logger.info("Inside Person Before Create...."); Set<Qualifikation> qualifikationen = new HashSet<>(); kompetenzRepository.findAll().forEach(kompetenz -> { Qualifikation qualifikation = new Qualifikation(); qualifikation.setAusmass(0); qualifikation.setKompetenz(kompetenz); qualifikation.setPerson(person); }); person.setQualifikationen(qualifikationen); System.out.println(person.getDisplayName());}插入人员时(通过 OAuth 登录),代码应将人员的“资格”设置为默认值。默认情况下,每个“Kompetenz”的值都应为 0。Kompetenz 与 Qualifikation 具有一对一的关系。如果您需要更多信息,请问我。
3 回答
DIEA
TA贡献1820条经验 获得超2个赞
看起来您正在尝试访问实体内应用程序的存储库层。这通常不是一个好主意,因为实体应该只知道它们持有的数据,而不是其他应用程序组件。
在这种特殊情况下,明智的做法是使用一个@Service
带有方法的类,您可以调用该方法将数据插入数据库。在该方法中,您还可以插入任何其他实体。让您的存储库成为服务的领域并使它们成为@Autowired
.
慕姐8265434
TA贡献1813条经验 获得超2个赞
我认为您应该创建一个服务类、一个存储库类和一个将通过存储库存储的实体。获取所有内部元素并用默认值填充它的逻辑是写在服务中而不是写在实体类中的好主意。如果您需要任何帮助,请告诉我。欢迎来到社区!!
添加回答
举报
0/150
提交
取消