Spring batch Spring批处理JdbcCursorItemReader:从具有FK关系的表中读取
这是我的阅读器:Spring batch Spring批处理JdbcCursorItemReader:从具有FK关系的表中读取,spring-batch,Spring Batch,这是我的阅读器: private static final String SELECT_ALL_BOOKS = "SELECT * FROM BOOKS WHERE COLOR = 'yellow'"; @Bean public JdbcCursorItemReader<BookEntity> itemReader(final DataSource dataSource) { return new JdbcCursorI
private static final String SELECT_ALL_BOOKS = "SELECT * FROM BOOKS WHERE COLOR = 'yellow'";
@Bean
public JdbcCursorItemReader<BookEntity> itemReader(final DataSource dataSource) {
return new JdbcCursorItemReaderBuilder<BookEntity>()
.name("book_reader")
.sql(SELECT_ALL_BOOKS)
.dataSource(dataSource)
.rowMapper(new BeanPropertyRowMapper<>(BookEntity.class))
.build();
}
@Entity
@Getter
@Setter
@Table(name = "book")
@AllArgsConstructor
@NoArgsConstructor
public class BookEntity implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_book")
private Integer idBook;
@Column(name = "color")
private String color;
@Column(name = "page_number")
private Integer pageNumber;
@Column(name = "read")
private Boolean read;
@ManyToOne(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
@JoinColumn(name = "id_author")
private Author author;
...
...
}
问题是:当我的工作执行我的步骤时,我有这些书,但作者=null。因此外键没有正确映射,所有其他字符串/整数/布尔字段都被正确检索。
我是SpringBatch的新手,所以可能我用错了阅读器
有人知道这个问题吗?谢谢请参考此内容-您使用的是映射到本机列的JDBC项读取器,属性由BeanPropertyRowMapper绑定 将与AUTHOR表的查询联接更改为本机查询,或使用JPA读取器支持ORM 下面的参考将为存储库阅读器提供帮助 下面的示例给出了一些实现的想法及其参考
请参考此内容-您使用的是映射到本机列的JDBC项读取器,属性由BeanPropertyRowMapper绑定 将与AUTHOR表的查询联接更改为本机查询,或使用JPA读取器支持ORM 下面的参考将为存储库阅读器提供帮助 下面的示例给出了一些实现的想法及其参考
谢谢你,你是个救命恩人,我用RepositoryItemReader代替了,工作得很好!谢谢你,你是个救命恩人,我用了RepositoryItemReader,一切都很好!