2015-11-10 1 views
2

Я создал родительский класс, чтобы иметь поля или сопоставления, общие для всех объектов в одном месте.@MappedSuperclass с более чем 1 уровнем уровня наследования Повторяющийся столбец при сопоставлении для исключения сущности

Но когда уровень наследования больше чем 1, спящий режим бросает исключение

MappingException: Repeated column in mapping for entity

Образец кода,

@MappedSuperclass 
public abstract class BaseModel { 

@Column(name="created_date") 
private Date createdDate; 

@Column(name = "modified_date") 
private Date modifiedDate; 

} 

@MappedSuperclass 
public class Order extends BaseModel { 

@Column(name="due_date", nullable = true) 
private Date dueDate; 

} 

@Entity 
public class Invoice extend Order { 

} 

Может кто-то пожалуйста, указать на что-нибудь, что я делаю неправильно ?

+0

ничего плохого с наличием нескольких уровней MappedSuperclass. Предполагая, что у вас есть аннотация Id, тогда это нормально. Не знаю, что означает сообщение поставщика JPA. Попробуйте использовать другой провайдер JPA. –

+0

Спасибо большое. Он работает отлично. На самом деле это недостаток в коде. – dharshan

ответ

1

Это прекрасно работает на моей стороне, как свойство в счете-фактуре, которое будет основным ключом.

Я сделал это, и это работает прекрасно создал таблицу с 4 столбцами ID, CREATED_DATE даты, MODIFIED_DATE, due_date

@Entity 
public class Invoice extends Order { 
    @Id 
    String id; 
} 
+0

Большое спасибо biraj. Он работает отлично. На самом деле это недостаток в коде. – dharshan

0

Корневая причина проблемы заключается в том, что @Embeddable объект унаследовал BaseModel и его было используемый в модели счета-фактуры. Исключено повторное исключение столбца.

Смежные вопросы

 Смежные вопросы