Hibernate: повторяющийся столбец в сопоставлении для сущности |два встроенных класса одного типа - PullRequest
1 голос
/ 07 ноября 2011

Hibernate генерирует исключение при создании таблиц, поскольку встроенные атрибуты отображаются в один и тот же столбец.

Класс Distance дважды внедряется в маршрут класса следующим образом:

@Embeddable
public class Distance implements Serializable{
    private static final long serialVersionUID = -8466495790824502626L;
    @Column(nullable = false)
    protected Integer distInSec;

    public Distance() {
        super();
    }
}


@Entity
public class Route{
    @Column(nullable=false)
    protected Distance currentDetour;

    @Column(nullable=false)
    protected Distance currentDist;       
}

Когда hibernate создает таблицу, он пытается отобразить distInSec для currentDetour и currentDist в тот же столбец «distInSec» в маршруте таблицы.Следовательно, выдается ошибка org.hibernate.MappingException: повторяющийся столбец в сопоставлении для объекта:.

Если возможно, я бы хотел изменить конфигурацию так, чтобы она всегда создавала столбцы с именами currentDetour_distInSec и currentDist_distInSec.У кого-нибудь есть идеи, как это сделать?

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 07 ноября 2011

Используйте @AttributeOverride для настройки имен столбцов.

2 голосов
/ 09 ноября 2011

использование DefaultComponentSafeNamingStrategy в качестве стратегии именования решило проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...