How use multiple @Embedded in same entity?

Viewed 1840

I have an embeddable entity in a java web app as follow:

@Embeddable
@Getter
@Setter
public class Address {
   private String street;
   private String alley;
   private int postCode;
}

I use a embedded field in another entity as follow:

@Entity
@Getter
@Setter
public class User {

    @Embedded
    private Address home;

    @Embedded
    private Address work;
}

When I run application, Occur error :

org.hibernate.MappingException: Repeated column in mapping for entity: my.package.User column: alley(should be mapped with insert="false" update="false").

How can I fix it?

note:

  • I can't use @AttributeOverrides.
  • I'm using hibernate 5.2.10.

update: I use configs in applicationContext.xml as follow:

<bean id="mainSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan"> 
        <list> 
            <value>my.package</value> 
        </list> 
    </property> 

    <property name="hibernateProperties"> 
        <props> 
            <prop key="hibernate.dialect">org.hibernate.spatial.dialect.postgis.PostgisDialect</prop> 
            <prop key="hibernate.hbm2ddl.auto">update</prop> 
            <prop key="hibernate.connection.characterEncoding">UTF-8</prop> 
            <prop key="hibernate.connection.charSet">UTF-8</prop> 
            <prop key="hibernate.default_schema">public</prop> 
            <prop key="hibernate.implicit_naming_strategy">org.hibernate.boot.‌?model.naming.Impli‌?ci‌?tNamingStrategyCompo‌nentPathImpl</prop> 
        </props> 
    </property> 
</bean> 

<bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="mainSessionFactory"/> 
</bean>
2 Answers
Related