java - 如何将对象从一个 JpaRepository 转换为另一个 JpaRepository
问题描述
我的 spring 应用程序中的一项功能有问题。我在同一个数据库中有 2 个表,它们都包含相同类型的数据(id、title、description 和 date)。而且我可以从一张表中获取数据,但不知道如何插入到第二张表中。
在我的@Service 层中,我可以从表 A 中获取数据。但不知道如何转换为另一个类对象(两个类都包含相同的数据)
注入的 JpaRepositories
private TasksRepository theTasksRepository;
private TasksRepositoryArchive theTasksRepositoryArchive;
还有从表 A 中获取对象的代码(TasksRepository - JpaRepository)
public Tasks findById(int theId) {
//Check if value is null or not null
Optional<Tasks> result = theTasksRepository.findById(theId);
Tasks theTask = null;
if (result.isPresent())
{
//if value is not null
theTask = result.get();
}
else
{
//if value is null
throw new RuntimeException("Task with given ID couldn't be found " +theId );
}
return theTask;
}
解决方案
1) 定义 2 个实体,每个表一个。要复制数据,请创建第二种类型的实例,然后复制属性,然后保存。要复制属性有很多方法:您不能手动调用每个 getter 和 setter,您可以使用一些库,如 Dozer 或 MapStruct。不要忘记将 ID 设置为 null。
2) 如果您想要存档更改,请使用有助于实现它的库。例如,考虑使用Enverse。
推荐阅读
- python - 如何在 discord.py 的 cog 类中使用 aioschedule
- php - 在 cpanel laravel8 图片干预中上传后报错 Can't write image data to path
- python - django-rest-passwordreset 手动创建和发送令牌
- jquery - 如何使用 jQuery 对嵌套菜单进行排序?
- python-3.x - 如何在 Gekko 中初始化 3D 数组变量?
- eclipse - 在 eclipse 中导入一个 autotools 项目没有找到所有包含,中断自动完成
- llvm - LLVM:区分 0 和外部初始化的 bss 符号
- javascript - Papa Parse:如果无法访问远程 CSV,如何捕获错误?
- r - 如何在条件下合并数据框的行
- java - 有没有办法在方向改变期间不丢失碎片的视图模型?