java - 创建实体时如何将数据插入数据库?
问题描述
我正在为一个使用 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 有一对一的关系。如果您需要更多信息,请询问我。
解决方案
我认为您应该创建一个服务类、一个存储库类和一个将通过存储库存储的实体。获取所有内部元素并用默认值填充的逻辑是写在服务中,而不是写在实体类中是一个好主意。如果您需要任何帮助,请告诉我。欢迎来到社区!!
推荐阅读
- postgresql - 我是否需要为“始终以身份生成的 bigint”声明一个唯一约束?
- javascript - Lottie 动画加载时如何淡入淡出?
- swift - 离线时如何在写入 Firebase 数据库之前检查服务器?
- sql - Sql join 与两个表最大和计数
- c++ - C++ Hello world 在 Visual Studio 2019 中不断给我错误
- javascript - React-Client-Session TypeError: undefined is not an object (evalating '_reactClientSession.default.setStoreType')
- facebook-graph-api - 如何确定为什么 facebook 页面 URL 不会返回 facebook id?
- php - 虚拟主机将我引导至 Xampp 仪表板
- php - 尝试在 Ajax 调用期间显示 Spinner 图像,但除非我处于调试模式,否则它将无法工作
- python - 将目标组添加到应用程序侦听器 (AWS CDK PYTHON)