Как вставить данные (строковый массив) в базу данных h2? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть массив строк в моем классе сущностей JPA, объявленный так:

private String[] suggestion = new String[3];

Я вставляю данные, создавая файл sql в моей папке 'resource' .Как вставить массив строк в базу данных, используя INSERT INTO .. VALUES (..) ???

Ответы [ 2 ]

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

Вы можете проверить этот рабочий пример с H2, как я его проверял.

Сначала добавьте эти свойства в файл application.properties:

# To See H2 Console in Browser:
# http://localhost:8080/h2-console
# Enabling H2 Console
spring.h2.console.enabled=true

# ===============================
# DB
# ===============================

spring.datasource.url=jdbc:h2:~/test
#jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

# ===============================
# JPA / HIBERNATE
# ===============================

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect

Код контроллера:

@RestController
public class PersonController {
    @Autowired
    private PersonService personService;

    @PostMapping(value = "/test")
    public Person checkTest() {
        System.out.println("PWan");
        return personService.savePerson();
    }

}

Сервисный код:

@Service
public class PersonService {

    @Autowired
    private PersonRepository personRepository;

    public Person savePerson() {
        Person p = new Person();
        p.setFullname("Pawan");
        personRepository.save(p);
        return p;

    }

}

РепозиторийКод:

public interface PersonRepository extends JpaRepository<Person, Long>{

    public Person findByfullname(String name);

    public Optional<Person> findById(Long id);

}

Пожалуйста, найдите ссылку ниже:

Пружинная загрузка с H2 DB Мой мерзавец

Дайте мне знать, если естьЕсть какие-либо проблемы.

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

Вы можете реализовать прослушиватель приложений для прослушивания события Context Refreshed из Spring и переопределения метода onApplicationEvent () для вставки ваших данных в базу данных.

import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;

    @Component
        public class Bootstrap implements ApplicationListener<ContextRefreshedEvent> {
            //    Array Initialization
            private String[] suggestion = new String[3];

            @Override
            public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
                initData();
            }

            private void initData(){
        //        Loop through array
                for (String item : suggestion){
        //            Insert data using a repository
                }
            }
        }

Это событие возникает, когда инициализируется или обновляется ApplicationContext, Ссылка на документацию Java.

...