Мне интересно, как лучше всего переводить из DTO в базу данных через Spring Data?
Вот что я пробовал до сих пор:
@Transactional
public void saveTemplatesFromDTOList(List<TemplateDTO> templateDTOList) {
for (TemplateDTO templateDTO : templateDTOList) {
em.merge(templateDTO);
}
}
Однако этоне работаетЛюбой другой способ, который я пробовал с помощью метода сохранения репозитория Spring Data, не работает.Примечательно, что я пытался извлечь сущность обратно из БД через ее идентификатор, а затем обновить ее и сохранить, но это не похоже на фиксацию.
Большое спасибо.
=============
Привет Натан.Благодарю.Это не обновляется в журналах либо.Нет инструкции ОБНОВЛЕНИЕ, просто ВЫБРАТЬ
вот настройки application.properties:
#==== connect to calanco ======#
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=xxx
spring.datasource.username=xxx
spring.datasource.password=xxx
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.use-new-id-generator-mapping=true
#temporary settings
spring.jpa.properties.hibernate.show_sql=false
spring.jpa.properties.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.type=trace
spring.jpa.show-sql=true
logging.level.org.hibernate=TRACE
============
ОБНОВЛЕНИЕ: HappyНовый год, Кен Чан;) Я пытался извлечь сущность из БД, обновить ее и сохранить, но она не сохраняется в БД.
Вот код:
@Transactional
public void saveTemplatesFromDTOList(List<TemplateDTO> templateDTOList) {
for (TemplateDTO templateDTO : templateDTOList) {
Template templateFetchFromDB = templateRepo.getOne(templateDTO.getId());
EntityToDTOConverter.fillTemplateEntityFromTemplateDTO(templateDTO, templateFetchFromDB); // does update the fields from DTO to entity fetched from DB
templateRepo.save(templateFetchFromDB);
em.persist(templateFetchFromDB); //doesn't work
em.flush();
}
}