Как переписать особенность столбца в подклассе? - PullRequest
0 голосов
/ 29 ноября 2018

В нашем приложении есть класс сущностей, у которого есть свойство (частная длинная версия) с аннотацией @Version, и есть много классов, расширяющих эту сущность.Мы реализовали управление версиями для оптимистической блокировки.Но в одном из этих подклассов мы не хотим эту функцию.Поэтому мой вопрос заключается в том, как мне перезаписать эту функцию в подклассе?

Код:

Employee.java:

@MappedSuperclass
class Employee {

@Id
@Column(name = "EMP_ID")
private int id;

@Column(name = "EMP_NAME")
private String name;

@Version
@Column(name = "VERSION")
private long version

//setters and getters 

}

PermEmployee.java:

@Entity
@Table(name = "PERM_EMP")
class PermEmployee extends Employee {

@Column(name = "SAL")
private long salary;

//setters and getters 

}

В настоящее время таблица PERM_EMP также имеет столбец VERSION и увеличивается с каждым обновлением, которое нам не нужно для таблицы PERM_EMP.Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 29 ноября 2018

Попробуйте attributeOverride:

@AttributeOverride(name = "version", column = @Column(name = "perm_version", insertable = false, updatable = false)
public class PermEmployee extends Employee{
}

Подробнее об этом здесь: https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/AttributeOverride.html

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