Обрабатывать несколько строк в пакете Spring

Я новичок в весенней партии, я просто хочу спросить, как я могу получить данные из нескольких строк набора результатов. У меня есть следующий сценарий:

  1. Есть две разные таблицы, скажем, сотрудник и заработная плата.
  2. Сотрудник может иметь несколько заработной платы на основе некоторого идентификатора.
  3. Я использовал запрос select * from emp,pay whem emp.id=pay.id & emp.id = "id",
  4. Теперь он возвращает несколько строк, и я должен создать XML
  5. Структура XML:

    <EMP>
    ....
    ...
    <Payroll>
    .
    .
    .
    </Payroll>
    <Payroll>
    .
    .
    .
    </Payroll>
    </emp>
    

При использовании RowMapper Я могу создать только одного ребенка из фонда заработной платы, но в таблице может быть несколько детей. Пожалуйста помоги...

2 ответа

Решение

Именно в этом сценарии использования были созданы платформы ORM, такие как Hibernate. Рассмотреть возможность использования HibernateCursorItemReader для вашего читателя, а затем определите свой постоянный слой так, чтобы у вас было следующее:

@Entity
@Table(name = "emp")
public class Employee {

    @Id
    @Column(name = "emp_id")
    private Long id;

    @OneToMany(mappedBy="employee")
    private Set<Payment> payments = new HashSet<>();

}

@Entity
@Table(name = "pay")
public class Payment {

    @Id
    @Column(name = "pay_id")
    private Long id;

    @ManyToOne
    @JoinColumn(name = "emp_id")
    private Employee employee;

}

Вам нужно что-то вроде группового считывателя, который обернут вокруг вашей базы данных.

Я объяснил этот подход в другом ответе: Spring для объединения значений и записи одного значения

Другие вопросы по тегам