java - Hibernate AttributeOverride is not working -


i have child class overrides getter (because adds different behavior) of super class. using @attributeoverride it's throws error org.hibernate.mappingexception: duplicate property mapping of name found in com.hbmap.domain.product too.

i not sure if doing wrong.

product:

@entity @table(name = "product") @access(accesstype.property) @attributeoverride(name = "name", column = @column(name = "name") ) public class product extends properties {    private long id;    @id   @column(name = "id")   @generatedvalue(strategy = generationtype.auto)   public long getid() {     return id;   }    public void setid(long id) {     this.id = id;   }    @override   public string getname() {     // different superclass     return super.getname();   } } 

properties (super class):

@mappedsuperclass @access(accesstype.property) public class properties {   private string name;    @column(name="name")   public string getname() {     return name;   }    public void setname(string name) {     this.name = name;   } } 

edited 1

full stacktrace:

org.hibernate.mappingexception: duplicate property mapping of name found in com.hbmap.domain.product @ org.hibernate.mapping.persistentclass.checkpropertyduplication(persistentclass.java:515) @ org.hibernate.mapping.persistentclass.validate(persistentclass.java:505) @ org.hibernate.mapping.rootclass.validate(rootclass.java:270) @ org.hibernate.cfg.configuration.validate(configuration.java:1360) @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1851) @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1930) @ org.springframework.orm.hibernate4.localsessionfactorybuilder.buildsessionfactory(localsessionfactorybuilder.java:372) @ org.springframework.orm.hibernate4.localsessionfactorybean.buildsessionfactory(localsessionfactorybean.java:454) @ org.springframework.orm.hibernate4.localsessionfactorybean.afterpropertiesset(localsessionfactorybean.java:439) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1633) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1570) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:539) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:476) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:303) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:230) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:299) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:194) @ org.springframework.beans.factory.support.beandefinitionvalueresolver.resolvereference(beandefinitionvalueresolver.java:351) @ org.springframework.beans.factory.support.beandefinitionvalueresolver.resolvevalueifnecessary(beandefinitionvalueresolver.java:108) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.applypropertyvalues(abstractautowirecapablebeanfactory.java:1477) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.populatebean(abstractautowirecapablebeanfactory.java:1222) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:537) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:476) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:303) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:230) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:299) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:194) @ org.springframework.beans.factory.support.beandefinitionvalueresolver.resolvereference(beandefinitionvalueresolver.java:351) @ org.springframework.beans.factory.support.beandefinitionvalueresolver.resolvevalueifnecessary(beandefinitionvalueresolver.java:108) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.applypropertyvalues(abstractautowirecapablebeanfactory.java:1477) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.populatebean(abstractautowirecapablebeanfactory.java:1222) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:537) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:476) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:303) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:230) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:299) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:194) @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:755) @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:757) @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:480) @ org.springframework.web.servlet.frameworkservlet.configureandrefreshwebapplicationcontext(frameworkservlet.java:663) @ org.springframework.web.servlet.frameworkservlet.createwebapplicationcontext(frameworkservlet.java:629) @ org.springframework.web.servlet.frameworkservlet.createwebapplicationcontext(frameworkservlet.java:677) @ org.springframework.web.servlet.frameworkservlet.initwebapplicationcontext(frameworkservlet.java:548) @ org.springframework.web.servlet.frameworkservlet.initservletbean(frameworkservlet.java:489) @ org.springframework.web.servlet.httpservletbean.init(httpservletbean.java:136) @ javax.servlet.genericservlet.init(genericservlet.java:158) @ org.apache.catalina.core.standardwrapper.initservlet(standardwrapper.java:1231) @ org.apache.catalina.core.standardwrapper.loadservlet(standardwrapper.java:1144) @ org.apache.catalina.core.standardwrapper.load(standardwrapper.java:1031) @ org.apache.catalina.core.standardcontext.loadonstartup(standardcontext.java:4914) @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5201) @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150) @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1409) @ org.apache.catalina.core.containerbase$startchild.call(containerbase.java:1399) @ java.util.concurrent.futuretask.run(unknown source) @ java.util.concurrent.threadpoolexecutor.runworker(unknown source) @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source) @ java.lang.thread.run(unknown source)

i've found solution, don't know if it's best, works.... add @transient getter in subclass.

product:

@entity @table(name = "product") @access(accesstype.property) @attributeoverride(name = "name", column = @column(name = "name") ) public class product extends properties {    private long id;    @id   @column(name = "id")   @generatedvalue(strategy = generationtype.auto)   public long getid() {     return id;   }    public void setid(long id) {     this.id = id;   }    @override   @transient   public string getname() {     // different superclass     return super.getname();   } } 

Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -

Nuget pack csproj using nuspec -