У меня есть дочерний класс, который переопределяет getter (потому что он добавляет другое поведение) своего суперкласса. Я использую @AttributeOverride, но он выдает ошибку org.hibernate.MappingException: Дублирует сопоставление свойств имени, найденного в com.hbmap.domain.Product.Hibernate AttributeOverride не работает
Я не уверен, что я делаю что-то неправильно.
продукта:
@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() {
// Do something different than superclass
return super.getName();
}
}
Свойства (супер-класс):
@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
Полный StackTrace:
org.hibernate.MappingException: Дублированное отображение свойства имени найдено в com.hbmap.domain.Product на org.hibernate.mapping.PersistentClass.checkPropertyDuplication (PersistentClass.java:515) в org.hibernate. mapping.PersistentClass.validate (PersistentClass.java:505) at org.hibernate.mapping.RootClass.validate (RootClass.java:270) at org.hibernate.cfg.Configuration.validate (Configuration.java:1360) at org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1851) на org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1930) на org.springframework.orm.hibernate4.LocalSessionFac toryBuilder.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) at 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.s pringframework.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) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference (BeanDefinitionValueResolver.java:3) 51) на org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary (BeanDefinitionValueResolver.java:108) на org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues (AbstractAutowireCapableBeanFactory.java:1477) в орг. 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) at org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:30 3) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:230) на org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:299) в орг. 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) at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:480) at 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) at javax.servlet.GenericServlet.init (GenericServlet.java:158) at org.apache.catalina.core.StandardWrapper.initServlet (StandardWrapper.java:1231) at 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)) at org.apache.catalina.core.StandardContext.startInternal (StandardContext.java:5201) at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) at org.apache.catalina.core .ContainerBase $ StartChild.call (ContainerBase.java:1409) at org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1399) at java.util.concurrent.FutureTask.run (Неизвестный источник) на java.util.concurrent.ThreadPoolExecutor.runWorker (Неизвестный источник) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown Source) в java.lang.Thread.run (Unknown Source)
Можете ли вы показать полную трассировку стека? – Amogh