Tasklet类是在以下三个方法中定义的:
class Tasklet{
doBeforeStep(){
//Records a retrieved from the table.
}
doExecute(){
//It opens the file and reads the file.
//Does all the processing one by one and creates a 2 list of records to update into the database.
}
doAfterStep(){
//The 2 list of records(Entities) are saved into the 2 different tables database using its corresponding repository class. Example:
RepositoryClass.saveall(List containing 105,000 records) //using the CRUDRepository method
}
}
面临的问题:该文件包含150,000条记录,因此,在doExecute()方法之后,它将150,000条数据记录存储在列表中。在doAfterStep()方法中,它试图将列表中的所有150,000条记录保存到数据库中,从而导致事务超时错误。
解决办法:
.get("stepToReadDataFromFile")
.<Entity1, Entity2>chunk(1000)
.reader(FileReader())
.processor(Processor())
.writer(Writer())
.build();```
public class FileProcessor extends ItemProcessor<Entity1, Entity2> {
在这个阶段,我们如何在这里发送2个实体,Entity2和entity3?
您可以将entity2
和entity3
组合在一个对象中,并调整ItemProcessor
以返回这个组合的对象。例如:
public class ProcessResult {
private Entity2 e2;
private Entity3 e3;
}
ItemProcessor看起来像:
public class FileProcessor extends ItemProcessor<Entity1, ProcessResult> {
public ProcessResult process(Entity1 e1){
//processing ....
return new ProcessResult(entity2 , entity3);
}
}
在ItemWriter
中,您可以从ProcessResult
访问Entity2
和Entity3
。
问题内容: 我有3个具有ManyToMany关系的实体: 角色实体: 权限实体: 功能实体: 我做了以下事情: 我创建了3个功能: 然后创建2个权限: Permission2 with Functionality2, Functionality3 然后创建一个角色: 我收到以下异常: java.lang.IllegalStateException:同一实体[com.persistence.enti
目前正在进行一个项目,我的Spring Boot项目需要在同一个DB服务器中利用多个数据源或模式。我发现了几个在spring boot中教授多数据源配置的教程,其中实体foo存在于数据源A中,bar存在于数据源B中,即下面的内容。, https://scattercode.co.uk/2016/01/05/multiple-databases-with-spring-boot-和spring数据j
DBSchema-2表(用户和角色)具有多对多关系,并由postgres中的中间表(用户角色)桥接。我想获取所有角色和创建它的人的姓名。名称在用户表中可用,但所有其他详细信息在角色表中。Roles表中有一个由创建人(创建角色的人的用户id)创建的字段。 我正在尝试构建一个GET请求,以查看给定id的所有角色以及创建id的人的姓名 实体类Users1.java 实体类角色。JAVA 角色。存储库类
我正在用spring security saml扩展实现一个多租户应用程序。 我为每个租户提供了一个服务提供商(SP)。所有SP都运行在与SP特定的第二级域公开的同一服务器上: sp1。myapp。com/myapi/1/ 在每个SP元数据文件中,我都配置了特定于租户的AssertionConsumerService。 当我测试SSO登录时,当SP端收到身份提供者(IDP)的响应时,我会得到一个K
我是JPA新手。目前,我正在编写一个带有注释的本机查询。我有一个类似下面的类 我正在编写两个查询,其中一个查询在选择投影中包含字段2,而另一个不包含字段2。如何对这两个查询使用相同的类?我尝试了瞬态注释。但它使两个查询的值都为null。