Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @SpringBootApplication
- @EnableAutoConfiguration
- public class DemoApplication {
- public static void main(String[] args) {
- SpringApplication.run(DemoApplication.class, args);
- }
- }
- @Configuration
- @EnableTransactionManagement
- @EnableJpaRepositories(entityManagerFactoryRef = "someEntityManagerFactory", transactionManagerRef = "someTransactionManager", basePackages = {
- "com.example.*" })
- @EntityScan(basePackages = "com.demo.models")
- @ConfigurationProperties(prefix = "mysql.datasource")
- public class DataBaseConfig {
- @Autowired
- private Environment env;
- @Bean
- public DataSource someDataSource() {
- DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName(env.getProperty("mysql.datasource.driver-class-name"));
- dataSource.setUrl(env.getProperty("mysql.datasource.url"));
- dataSource.setUsername(env.getProperty("mysql.datasource.username"));
- dataSource.setPassword(env.getProperty("mysql.datasource.password"));
- return dataSource;
- }
- @Bean
- public LocalContainerEntityManagerFactoryBean someEntityManagerFactory() {
- LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
- em.setDataSource(someDataSource());
- em.setPackagesToScan(new String[] { "org.openlegacy.analytics.models" });
- JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
- em.setJpaVendorAdapter(vendorAdapter);
- em.setJpaProperties(additionalProperties());
- return em;
- }
- @Bean
- public PlatformTransactionManager someTransactionManager() {
- JpaTransactionManager tm = new JpaTransactionManager();
- tm.setEntityManagerFactory(someEntityManagerFactory().getObject());
- tm.setDataSource(someDataSource());
- return tm;
- }
- Properties additionalProperties() {
- Properties properties = new Properties();
- properties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("spring.jpa.hibernate.ddl-auto"));
- properties.setProperty("hibernate.dialect", env.getProperty("spring.jpa.properties.hibernate.dialect"));
- properties.setProperty("spring.jpa.show-sql", env.getProperty("spring.jpa.show-sql"));
- properties.setProperty("spring.jpa.hibernate.naming.physical-strategy",
- env.getProperty("spring.jpa.hibernate.naming.physical-strategy"));
- return properties;
- }
- }
- @RestController
- @RequestMapping("/users")
- public class UserController {
- @Autowired
- private UserRepository userRipository;
- @RequestMapping(value = "", method = RequestMethod.GET)
- public List<User> getItems() {
- return userRipository.getUsers();
- }
- @RequestMapping(value = "/message", method = RequestMethod.GET)
- public String getMessage() {
- return userRipository.getMessage();
- }
- }
- @Transactional
- @Repository
- public class UserRepository {
- @PersistenceContext
- private EntityManager entityManager;
- @SuppressWarnings("unchecked")
- public List<User> getUsers() {
- return entityManager.createQuery("select u from User u").getResultList();
- }
- public String getMessage() {
- return "hello";
- }
- }
- @Entity(name = "user")
- public class User implements Serializable {
- private static final long serialVersionUID = 1L;
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private Integer id;
- @Column(name = "user_name")
- private String userName;
- @Column(name = "password")
- private String password;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
- # DataSource settings: set here your own configurations for the database connection.
- mysql.datasource.username=openlegacy
- mysql.datasource.password=openlegacy
- mysql.datasource.driver-class-name=com.mysql.jdbc.Driver
- mysql.datasource.url=jdbc:mysql://localhost:3306/olbank
- spring.jpa.database= MYSQL
- spring.data.jpa.repositories.enabled=true
- #spring.jpa.database-platform=org.hibernate.dialect.MYSQL5Dialect
- # Show or not log for each sql query
- spring.jpa.show-sql = true
- # Hibernate ddl auto (create, create-drop, update)
- spring.jpa.hibernate.ddl-auto = update
- # Naming strategy
- #spring.jpa.hibernate.naming.strategy= org.hibernate.cfg.ImprovedNamingStrategy
- spring.jpa.hibernate.naming.physical-strategy= org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
- # The SQL dialect makes Hibernate generate better SQL for the chosen database
- spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
- @Entity(name = "user")
- select u from user u
- em.setPackagesToScan(new String[] { "com.demo.models" });
Add Comment
Please, Sign In to add comment