![](/img/trans.png)
[英]How to get ddl auto generated script in Spring boot JPA/Hibernate?
[英]How to run a custom ddl script on startup of Spring Boot 2
是否可以在啟動后在啟動時運行自定義ddl腳本
spring.jpa.hibernate.ddl-auto =創建
在數據庫中創建了模型實體?
目前,我對模型做了很多更改,並希望更改后刪除所有內容,並通過以下方式創建測試數據:
@Bean
InitializingBean createTestEntries() {
return () -> {
testObject t1 = new testObject (values...);
testRepo.save(t1);
}
之后,我想創建一個數據庫視圖,但是我找不到使用Spring Boot 2 + Hibernate / JPA做到這一點的方法。
當然,我可以禁用ddl-auto並使用schema.sql和data.sql文件執行所有操作-但很高興將我的模型更改自動填充到db中。
所以我想要一個混合模式。 我的模型仍會自動填充-但之后我可以調用自定義ddl代碼來創建視圖。
有人可以幫我嗎?
您可以將Springs JdbcTemplate注入到createTestEntries()方法中,並使用它執行自定義SQL來創建視圖:
@Bean
InitializingBean createTestEntries(@Autwired JdbcTemplate jdbc) {
return () -> {
testObject t1 = new testObject (values...);
testRepo.save(t1);
jdbc.update("custom SQL here")
}
根據您的需要,您也可以注入DataSource或EntityManager(使用本機查詢)並使用它。
編輯:本機查詢示例
@Bean
InitializingBean createTestEntries(@Autowired EntityManager em) {
return () -> {
Query q = em.createNativeQuery("custom sql");
q.executeUpdate()
}
}
有關更多詳細信息,請參見JPA API文檔 :
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.