आप अपने hibernate.hbm2ddl.auto
संपत्ति create
या create-drop
लिए सबसे आसान तरीका है कि ऐसा करने के लिए निर्धारित किया है तो एसक्यूएल फ़ाइल नाम है कि SQL कथन डेटाबेस स्कीमा में आपकी प्रारंभिक डेटा लोड करने में शामिल है, उदा hibernate.hbm2ddl.import_files
संपत्ति की स्थापना द्वारा है प्रारंभिक आवेदन उपयोगकर्ता।
निम्नलिखित उदाहरण है कि मेरे पास DatabaseConfig
कक्षा में है। यह SQL फ़ाइल नाम import_initial_data.sql के साथ hibernate.hbm2ddl.import_files
संपत्ति सेट करता है जिसमें डेटाबेस स्कीमा में अपना प्रारंभिक डेटा लोड करने के लिए SQL सम्मिलन विवरण शामिल हैं।
@Bean
public LocalSessionFactoryBean hibernate5SessionFactoryBean(){
LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean();
localSessionFactoryBean.setDataSource((DataSource) appContext.getBean("DataSource"));
localSessionFactoryBean.setAnnotatedClasses(AppUser.class);
Properties properties = new Properties();
properties.put("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
properties.put("hibernate.hbm2ddl.auto","create-drop");
properties.put("hibernate.hbm2ddl.import_files", "import_initial_data.sql");
properties.put("hibernate.show_sql","true");
localSessionFactoryBean.setHibernateProperties(properties);
return localSessionFactoryBean;
}
यह मेरा model
AppUser.java
में पैकेज है:
package com.beniregev.model;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Entity
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@AllArgsConstructor(access = AccessLevel.PUBLIC)
public class AppUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(nullable = false, unique = true)
private String userName;
@Column(nullable = false)
private String password;
public AppUser(String userName, String password) {
this.userName = userName;
this.password = password;
}
}
के लिए
Maven निर्भरता lombok:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
<scope>provided</scope>
</dependency>
import_initial_data.sql फ़ाइल मैं resources
निर्देशिका में है:
INSERT INTO appuser(username, password) VALUES ('jesus', 'christ');
INSERT INTO appuser(username, password) VALUES ('mary', 'virgin');
INSERT INTO appuser(username, password) VALUES ('josef', 'who?');
INSERT INTO appuser(username, password) VALUES ('jeremaia', 'profet');
COMMIT;
और * चुनें * appuser से का परिणाम, *:
[स्टार्टअप पर डेटाबेस से वसंत वेब अनुप्रयोग प्रारंभ] (के संभावित डुप्लिकेट http://stackoverflow.com/questions/ 70825 9 4/स्प्रिंग-वेब-एप्लिकेशन-स्टार्टअप-से-डेटाबेस-ऑन-स्टार्टअप) –
@ टोमाज़ नर्कविचज़: http://stackoverflow.com/questions/7082594/spring-web-plication-initialization-from का डुप्लिकेट नहीं है -डेटाबेस-ऑन-स्टार्टअप, क्योंकि सूचना प्रवाह दूसरी तरफ है, इसलिए कोई समस्या हल करने के अन्य तरीकों का उपयोग कर सकता है। – Ralph
यह बहुत समान है। मेरा थोड़ा और सामान्य है। –