Hibernate不在H2中创建表

时间:2018-09-01 09:51:09

标签: java spring hibernate

Hibernate不在H2数据库中创建表。我正在使用Maven WebApp项目。但是休眠似乎无法创建自动表。请帮忙。这是我的User类-

    package com.sakib.model;

import javax.persistence.Entity;
import javax.persistence.Table;

    @Entity
    @Table(name = "userlogin")
    public class User {


        private String fname;
        private String lname;
        private String email;
        private int mobile;
        public String getFname() {
            return fname;
        }
        public void setFname(String fname) {
            this.fname = fname;
        }
        public String getLname() {
            return lname;
        }
        public void setLname(String lname) {
            this.lname = lname;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public int getMobile() {
            return mobile;
        }
        public void setMobile(int mobile) {
            this.mobile = mobile;
        }   
    }

这是我的DBConfiguration文件。我没有将基于xml的文件用于休眠配置-

 package com.sakib.configuration;

import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;
import org.hibernate.SessionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBuilder;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import com.sakib.model.User;

    public class DBConfiguration {
        @Bean
        public DataSource getDataSource() {
            BasicDataSource dataSource = new BasicDataSource();
            dataSource.setDriverClassName("org.h2.Driver");
            dataSource.setUrl("jdbc:h2:tcp://localhost/~/userlogin");
            dataSource.setUsername("sa");
            dataSource.setPassword("sa");
            return dataSource;
        }
        @Bean
        public SessionFactory sessionFactory() {
            LocalSessionFactoryBuilder lsf=
                    new LocalSessionFactoryBuilder(getDataSource());
            Properties hibernateProperties=new Properties();
            hibernateProperties.setProperty(
                    "hibernate.dialect", "org.hibernate.dialect.H2Dialect");
            hibernateProperties.setProperty("hibernate.hbm2ddl.auto", "create");
            hibernateProperties.setProperty("hibernate.show_sql", "true");
            lsf.addProperties(hibernateProperties);
            Class classes[]=new Class[]{User.class};
            return lsf.addAnnotatedClasses(classes).buildSessionFactory();
        }
        @Bean
        public HibernateTransactionManager hibTransManagement(){
            return new HibernateTransactionManager(sessionFactory());
        }
    }

这是App.java。它基本上是通过main方法运行后端实现-

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.sakib.configuration.DBConfiguration;


    public class App 
    {
        public static void main( String[] args )
        {
            System.out.println( "Hello World!" ); 
            ApplicationContext context=
                    new AnnotationConfigApplicationContext(DBConfiguration.class);

        }
    }

任何帮助都会很有用。

0 个答案:

没有答案