Принудительное включение полей в класс JPA @Entity - PullRequest
0 голосов
/ 12 октября 2018

У меня есть несколько классов, помеченных @Entity.В половине классов есть три дополнительных поля: specialFieldA, specialFieldB и specialFieldC;другая половина - нет.

Есть ли способ JPA, чтобы в будущих классах были эти 3 поля?Т.е. если товарищ по команде хочет создать другой класс с specialFieldA, specialFieldB и specialFieldC в них, есть ли способ обеспечить наличие этих 3 полей?

Я думал об использовании интерфейса, ноэто не похоже на правильную стратегию, так как вы можете определять только методы.

Я не могу использовать абстрактный класс, потому что эти классы уже расширяют родительский класс.

Ответы [ 2 ]

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

Я закончил тем, что создал отдельный класс только с этими специальными полями в нем и пометил класс @Embeddable.Затем в моей сущности я включил этот новый класс в качестве поля и поместил на него аннотацию @Embedded.

0 голосов
/ 12 октября 2018

Создание абстрактного класса, такого как Специальные поля, имеют аннотацию @MappedSuperClass

@MappedSuperClass
public abstract class SpecialFields {
  @Column(name = "specialFieldA")
  private String specialFieldA;

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

  @Column(name = "specialFieldC")
  private String specialFieldC;
}

Все классы, в которые вы хотите добавить эти поля, простираются от этого класса Как

@Entity
@Table(name ="sample")
public class Sample extends SpecialFields  implements Serializable{
     //All three fields are part of this class and automatically maps to date base columns with same name..
}

Теперь все классы, которые имеют эти три поля, должны выходить из класса SpecialFields.а другие нет.

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