首页 > 解决方案 > 创建实体时如何将数据插入数据库?

问题描述

我正在为一个使用 spring 作为后端的学校项目创建一个网站。当新数据保存到特定表时,我正在尝试将数据插入数据库。

我试过使用@HandleAfterCreate 和@PrePersist,但都没有奏效。我对春天不是很有经验。老师让我们使用它,现在我不知道该怎么做。

@HandleAfterCreate
public 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 登录),代码应将人员的“Qualifikation”设置为默认值。默认情况下,它应该具有值为 0 的每个“Kompetenz”。Kompetenz 与 Qualifikation 有一对一的关系。如果您需要更多信息,请询问我。

标签: javaspringspring-boot

解决方案


我认为您应该创建一个服务类、一个存储库类和一个将通过存储库存储的实体。获取所有内部元素并用默认值填充的逻辑是写在服务中,而不是写在实体类中是一个好主意。如果您需要任何帮助,请告诉我。欢迎来到社区!!


推荐阅读