Есть ли способ полностью заполнить таблицу заданными значениями только при первом выполнении? - PullRequest
0 голосов
/ 17 сентября 2018

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

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;

@Column(name = "name")
private String name;

И его значения по умолчанию:

1 ------ ok
2 ------ not ok
3 ------ irregular
4 ------ none of the above

Можно ли при запуске hibernate проверить, пуста ли эта таблица, и если да, заполнить эту таблицу этими значениями?

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Создайте класс DBInitializer с помощью метода аннотации @Postconstruct, а затем вы можете инициализировать значения или заполнить значения в базе данных. Например:

@Service
public class DBInitializer{
private Logger logger = 
LoggerFactory.getLogger(DBInitializer.class)
@Autowired
 ProductRepository productRepo;

@PostConstruct
void init(){
logger.info("Starting Database initialization...")
Product product =new Product();
product.setName("blah");
productRepo.save(product);
  }

  }
0 голосов
/ 17 сентября 2018

Вы можете использовать инструменты переноса данных. Многие из этих инструментов очень хорошо интегрируются с Spring Boot.Пожалуйста, отметьте FlyWay .

Эти инструменты помогут вам инициализировать базу данных со значениями по умолчанию.

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