Весенняя интеграция Jpa |Вставить строку с Jpa в Java DSL - PullRequest
0 голосов
/ 20 февраля 2019

Я довольно долго искал в интернете, но не смог найти указатель ниже:

Конкретный пример вставки строки с JpaUpdatingOutboundEndpointSpec.

@Bean
public JpaUpdatingOutboundEndpointSpec insertToTable() {
    return Jpa.updatingGateway(entityManger)
              .entityClass(EntitySample.class); 
}

Willвыше хватит?

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 20 февраля 2019

Правильно, в некоторых случаях этого кода может быть достаточно.Отсюда было бы здорово узнать, как вы собираетесь использовать этот код.Хотя пока что я поделюсь с вами своей конфигурацией из теста и теста как такового:

    @Bean
    public IntegrationFlow outboundAdapterFlow(EntityManagerFactory entityManagerFactory) {
        return f -> f
                .handle(Jpa.outboundAdapter(entityManagerFactory)
                                .entityClass(StudentDomain.class)
                                .persistMode(PersistMode.PERSIST),
                        e -> e.transactional(true));
    }

...

@Autowired
@Qualifier("outboundAdapterFlow.input")
private MessageChannel outboundAdapterFlowInput;

@Test
public void testOutboundAdapterFlow() {
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

    List<?> results1 = jdbcTemplate.queryForList("Select * from Student");
    assertNotNull(results1);
    assertTrue(results1.size() == 3);

    Calendar dateOfBirth = Calendar.getInstance();
    dateOfBirth.set(1981, 9, 27);

    StudentDomain student = new StudentDomain()
            .withFirstName("Artem")
            .withLastName("Bilan")
            .withGender(Gender.MALE)
            .withDateOfBirth(dateOfBirth.getTime())
            .withLastUpdated(new Date());

    assertNull(student.getRollNumber());

    this.outboundAdapterFlowInput.send(MessageBuilder.withPayload(student).build());

    List<?> results2 = jdbcTemplate.queryForList("Select * from Student");
    assertNotNull(results2);
    assertTrue(results2.size() == 4);

    assertNotNull(student.getRollNumber());
}

Вы можете найти больше тестов о Spring Integration Java DSLдля JPA в тестовом классе для фреймворка: https://github.com/spring-projects/spring-integration/blob/master/spring-integration-jpa/src/test/java/org/springframework/integration/jpa/dsl/JpaTests.java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...