spring - How to migrate string field to enum? -


i have 2 versions of product entity have migrate data 1 other. "unit" attribute problem. original keeps kilogram unit "kg" , after migration should persisted "kilogram".

the new product entity has:

@enumerated(enumtype.string) public unit unit; 

i wrote converter:

    @converter(autoapply = true)     public class unitconverter implements attributeconverter<unit, string> {      @override     public string converttodatabasecolumn(unit attribute) {          switch (attribute) {          case kg:             return "kg";         case lt:             return "lt";         case mt:             return "mt";         case pcs:             return "pcs";          }          return null;      }      @override     public unit converttoentityattribute(string dbdata) {          switch (dbdata) {          case "kg":             return unit.kg;         case "lt":             return unit.lt;         case "mt":             return unit.mt;         case "pcs":             return unit.pcs;          }          return null;      }  } 

and tried

public unit unit; 

but

invalid value getint() - 'kg'

java.lang.illegalstateexception: failed execute commandlinerunner     @ org.springframework.boot.springapplication.callrunner(springapplication.java:801) [spring-boot-1.4.0.release.jar:1.4.0.release]     @ org.springframework.boot.springapplication.callrunners(springapplication.java:782) [spring-boot-1.4.0.release.jar:1.4.0.release]     @ org.springframework.boot.springapplication.afterrefresh(springapplication.java:769) [spring-boot-1.4.0.release.jar:1.4.0.release]     @ org.springframework.boot.springapplication.run(springapplication.java:314) [spring-boot-1.4.0.release.jar:1.4.0.release]     @ org.springframework.boot.springapplication.run(springapplication.java:1185) [spring-boot-1.4.0.release.jar:1.4.0.release]     @ org.springframework.boot.springapplication.run(springapplication.java:1174) [spring-boot-1.4.0.release.jar:1.4.0.release]     @ erp.migration.migrationapplication.main(migrationapplication.java:21) [bin/:na] caused by: org.springframework.orm.jpa.jpasystemexception: not execute query; nested exception org.hibernate.exception.genericjdbcexception: not execute query     @ org.springframework.orm.jpa.vendor.hibernatejpadialect.converthibernateaccessexception(hibernatejpadialect.java:333) ~[spring-orm-4.3.2.release.jar:4.3.2.release]     @ org.springframework.orm.jpa.vendor.hibernatejpadialect.translateexceptionifpossible(hibernatejpadialect.java:244) ~[spring-orm-4.3.2.release.jar:4.3.2.release]     @ org.springframework.orm.jpa.abstractentitymanagerfactorybean.translateexceptionifpossible(abstractentitymanagerfactorybean.java:491) ~[spring-orm-4.3.2.release.jar:4.3.2.release]     @ org.springframework.dao.support.chainedpersistenceexceptiontranslator.translateexceptionifpossible(chainedpersistenceexceptiontranslator.java:59) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.dao.support.dataaccessutils.translateifnecessary(dataaccessutils.java:213) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.dao.support.persistenceexceptiontranslationinterceptor.invoke(persistenceexceptiontranslationinterceptor.java:147) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.data.jpa.repository.support.crudmethodmetadatapostprocessor$crudmethodmetadatapopulatingmethodinterceptor.invoke(crudmethodmetadatapostprocessor.java:133) ~[spring-data-jpa-1.10.2.release.jar:na]     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.interceptor.exposeinvocationinterceptor.invoke(exposeinvocationinterceptor.java:92) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.framework.jdkdynamicaopproxy.invoke(jdkdynamicaopproxy.java:213) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ com.sun.proxy.$proxy102.findall(unknown source) ~[na:na]     @ erp.migration.commandrunner.migratematerials(commandrunner.java:110) ~[bin/:na]     @ erp.migration.commandrunner.run(commandrunner.java:99) ~[bin/:na]     @ erp.migration.commandrunner$$fastclassbyspringcglib$$d69da090.invoke(<generated>) ~[bin/:na]     @ org.springframework.cglib.proxy.methodproxy.invoke(methodproxy.java:204) ~[spring-core-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.framework.cglibaopproxy$cglibmethodinvocation.invokejoinpoint(cglibaopproxy.java:720) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:157) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.transaction.interceptor.transactioninterceptor$1.proceedwithinvocation(transactioninterceptor.java:99) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.transaction.interceptor.transactionaspectsupport.invokewithintransaction(transactionaspectsupport.java:280) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.transaction.interceptor.transactioninterceptor.invoke(transactioninterceptor.java:96) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.framework.cglibaopproxy$dynamicadvisedinterceptor.intercept(cglibaopproxy.java:655) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ erp.migration.commandrunner$$enhancerbyspringcglib$$8bb3a8a3.run(<generated>) ~[bin/:na]     @ org.springframework.boot.springapplication.callrunner(springapplication.java:798) [spring-boot-1.4.0.release.jar:1.4.0.release]     ... 6 common frames omitted caused by: org.hibernate.exception.genericjdbcexception: not execute query     @ org.hibernate.exception.internal.standardsqlexceptionconverter.convert(standardsqlexceptionconverter.java:47) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.engine.jdbc.spi.sqlexceptionhelper.convert(sqlexceptionhelper.java:109) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.dolist(loader.java:2620) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.dolist(loader.java:2600) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.listignorequerycache(loader.java:2429) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.list(loader.java:2424) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.hql.queryloader.list(queryloader.java:501) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.hql.internal.ast.querytranslatorimpl.list(querytranslatorimpl.java:371) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.engine.query.spi.hqlqueryplan.performlist(hqlqueryplan.java:216) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.internal.sessionimpl.list(sessionimpl.java:1326) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.internal.queryimpl.list(queryimpl.java:87) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.jpa.internal.queryimpl.list(queryimpl.java:606) ~[hibernate-entitymanager-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.jpa.internal.queryimpl.getresultlist(queryimpl.java:483) ~[hibernate-entitymanager-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.jpa.criteria.compile.criteriaquerytypequeryadapter.getresultlist(criteriaquerytypequeryadapter.java:50) ~[hibernate-entitymanager-5.0.9.final.jar:5.0.9.final]     @ org.springframework.data.jpa.repository.support.simplejparepository.findall(simplejparepository.java:327) ~[spring-data-jpa-1.10.2.release.jar:na]     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) ~[na:1.8.0_111]     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) ~[na:1.8.0_111]     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) ~[na:1.8.0_111]     @ java.lang.reflect.method.invoke(method.java:498) ~[na:1.8.0_111]     @ org.springframework.data.repository.core.support.repositoryfactorysupport$queryexecutormethodinterceptor.executemethodon(repositoryfactorysupport.java:503) ~[spring-data-commons-1.12.2.release.jar:na]     @ org.springframework.data.repository.core.support.repositoryfactorysupport$queryexecutormethodinterceptor.doinvoke(repositoryfactorysupport.java:488) ~[spring-data-commons-1.12.2.release.jar:na]     @ org.springframework.data.repository.core.support.repositoryfactorysupport$queryexecutormethodinterceptor.invoke(repositoryfactorysupport.java:460) ~[spring-data-commons-1.12.2.release.jar:na]     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.data.projection.defaultmethodinvokingmethodinterceptor.invoke(defaultmethodinvokingmethodinterceptor.java:61) ~[spring-data-commons-1.12.2.release.jar:na]     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.transaction.interceptor.transactioninterceptor$1.proceedwithinvocation(transactioninterceptor.java:99) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.transaction.interceptor.transactionaspectsupport.invokewithintransaction(transactionaspectsupport.java:280) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.transaction.interceptor.transactioninterceptor.invoke(transactioninterceptor.java:96) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     @ org.springframework.aop.framework.reflectivemethodinvocation.proceed(reflectivemethodinvocation.java:179) ~[spring-aop-4.3.2.release.jar:4.3.2.release]     @ org.springframework.dao.support.persistenceexceptiontranslationinterceptor.invoke(persistenceexceptiontranslationinterceptor.java:136) ~[spring-tx-4.3.2.release.jar:4.3.2.release]     ... 26 common frames omitted caused by: java.sql.sqlexception: invalid value getint() - 'kg'     @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:963) ~[mysql-connector-java-5.1.39.jar:5.1.39]     @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:896) ~[mysql-connector-java-5.1.39.jar:5.1.39]     @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:885) ~[mysql-connector-java-5.1.39.jar:5.1.39]     @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:860) ~[mysql-connector-java-5.1.39.jar:5.1.39]     @ com.mysql.jdbc.resultsetimpl.getint(resultsetimpl.java:2517) ~[mysql-connector-java-5.1.39.jar:5.1.39]     @ com.mysql.jdbc.resultsetimpl.getint(resultsetimpl.java:2583) ~[mysql-connector-java-5.1.39.jar:5.1.39]     @ org.hibernate.type.enumtype$ordinalenumvaluemapper.getvalue(enumtype.java:337) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.type.enumtype.nullsafeget(enumtype.java:231) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.type.customtype.nullsafeget(customtype.java:111) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.type.abstracttype.hydrate(abstracttype.java:85) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.persister.entity.abstractentitypersister.hydrate(abstractentitypersister.java:2727) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.loadfromresultset(loader.java:1729) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.instancenotyetloaded(loader.java:1655) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.getrow(loader.java:1544) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.getrowfromresultset(loader.java:727) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.processresultset(loader.java:972) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.doquery(loader.java:930) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.doqueryandinitializenonlazycollections(loader.java:336) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     @ org.hibernate.loader.loader.dolist(loader.java:2617) ~[hibernate-core-5.0.9.final.jar:5.0.9.final]     ... 53 common frames omitted 


Comments

Popular posts from this blog

inversion of control - Autofac named registration constructor injection -

verilog - Systemverilog dynamic casting issues -

ios - Change Storyboard View using Seague -