java - Table generated by hibernate but not showing in mysql database -


hi working on code of book called master spring mvc , using mysql database instead of embeded database. in book author have used xml based configuration using java based. till here working fine.

the problem facing when running code in tomcat server , logs (hibernate logs table generation particular table) fine table getting generated in database not table called historic. have attached code along log shows table generated:

please not multi module project , therefore webapp, database configured separately. 1) hibernate log genrerate particular table

hibernate log class:

create table historic (    historic_type varchar(31) not null,     id integer not null auto_increment,     adj_close double precision,     change_percent double precision,     close double precision not null,     from_date datetime,     high double precision not null,     interval varchar(255),     low double precision not null,     open double precision not null,     to_date datetime,     volume double precision not null,     ask double precision,     bid double precision,     index_code varchar(255),     stock_code varchar(255),     primary key (id) ) engine=myisam 

2)database configuraton file

@configuration @componentscan("edu.zipcloud.cloudstreetmarket.core.entities") @enabletransactionmanagement public class jpahibernatespringconfig {     private logger logger = loggerfactory.getlogger(this.getclass());      public datasource datasource() {         logger.info("============================[data source configuration: began]");         basicdatasource ds = new basicdatasource();         ds.setdriverclassname("com.mysql.jdbc.driver");         ds.seturl("jdbc:mysql://localhost/cloudstreet");         ds.setusername("root");         ds.setpassword("root");          logger.info("============================[data source configuration: ends]");         return ds;     }      @bean     public localcontainerentitymanagerfactorybean localcontainerentitymanagerfactorybean() {         logger.info("============================[localcontainerentitymanagerfactorybean: began]");         localcontainerentitymanagerfactorybean bean = new localcontainerentitymanagerfactorybean();         bean.setdatasource(datasource());         bean.setpersistenceunitname("jpadata");         bean.setpackagestoscan("edu.zipcloud.cloudstreetmarket.core");         bean.setpersistenceproviderclass(hibernatepersistenceprovider.class);         bean.setjpaproperties(hibernatejpaproperties());         logger.info("===========================[localcontainerentitymanagerfactorybean: ends]");         return bean;     }      public properties hibernatejpaproperties() {         logger.info("============================[hibernatejpaproperties: began]");         properties properties = new properties();         properties.put("hibernate.dialect", "org.hibernate.dialect.mysql5dialect");         properties.put("hibernate.show_sql", "true");         properties.put("hibernate.format_sql", "true");         properties.put("hibernate.hbm2ddl.auto", "create");         properties.put("hibernate.naming-strategy", "org.hibernate.cfg.improvednamingstrategy");         properties.put("hibernate.default_schema", "public");          logger.info("============================[hibernatejpaproperties: ends]");         return properties;     }      @bean     public jpatransactionmanager jpatransactionmanager() {         logger.info("============================[jpatransactionmanager: began]");         jpatransactionmanager manager = new jpatransactionmanager();         manager.setentitymanagerfactory(localcontainerentitymanagerfactorybean().getobject());         logger.info("============================[jpatransactionmanager: ends]");         return manager;     } } 

2) dispatcherservlet:

public class dispatcherservletconifg extends abstractannotationconfigdispatcherservletinitializer {      @override     protected class<?>[] getrootconfigclasses() {         return new class[] { jpahibernatespringconfig.class };     }      @override     protected class<?>[] getservletconfigclasses() {         return new class[] { webservletinit.class };     }      @override     protected string[] getservletmappings() {         return new string[] { "/" };     } 

3) historic entity

@entity @inheritance(strategy = inheritancetype.single_table) @discriminatorcolumn(name = "historic_type") @table(name = "historic") public abstract class historic implements serializable {      private static final long serialversionuid = -802306391915956578l;      @id     @generatedvalue(strategy=generationtype.identity)     private int id;      private double open;      private double high;      private double low;      private double close;      private double volume;      @column(name = "adj_close")     private double adjclose;      @column(name = "change_percent")     private double changepercent;      @temporal(temporaltype.timestamp)     @column(name = "from_date")     private date fromdate;      @temporal(temporaltype.timestamp)     @column(name = "to_date")     private date todate;      @enumerated(enumtype.string)     @column(name = "interval")     private quotesinterval interval; 

please take @ logs , if need other information let me know.

thanks.

i think problem mysql keyword being used column name "interval" try other name

we can rename interval field below

@enumerated(enumtype.string) @column(name = "quotesinterval") private quotesinterval interval; 

or

any name matches need.

bottom line should not use mysql keywords


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -