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,一切都很好!