Если, например, у меня есть два класса FullTimeEmployee и Неполный рабочий деньСотрудник . FullTimeEmployee должен расширить таблицу Наемный рабочий и получить доступ к этим свойствам с помощью @MappedSuperclass, но класс Неполный рабочий деньСотрудник не требует расширения, но выдает Ошибка JPA, если не расширены все другие классы.
@MappedSuperclass
public class Employee {
@Id
@GeneratedValue
private long id;
private String name;
.............
}
@Entity
public class FullTimeEmployee extends Employee {
private int salary;
.............
}
Я не хочу расширять класс Неполный рабочий деньСотрудник с сотрудником @MappedSuperclass не позволяет мне это делать
@Entity
public class PartTimeEmployee {
private int hourlyRate;
.............
}




Вы должны пересмотреть свой дизайн и наименования сущностей. Если ваш PartTimeEmployee не расширяется Employee, вам нужен как минимум id, поэтому:
@Entity
public class PartTimeEmployee {
@Id
@GeneratedValue
private long id;
private int hourlyRate;
. . .
}
ИЛИ вы также можете создать немного более умный дизайн и сопоставленный суперкласс, например:
@MappedSuperclass
public class BaseEntity {
@Id
@GeneratedValue
private long id;
Тогда ваш Employee может расширить его и унаследовать id:
@MappedSuperclass
public class Employee extends BaseEntity {
private String name;
. . .
}
Ваш FullTimeEmployee может быть таким, какой он есть, и PartTimeEmployee может расширять BaseEntity, чтобы наследовать id:
@Entity
public class PartTimeEmployee extends BaseEntity {
private int hourlyRate;
. . .
}
Пожалуйста, уточните подробнее. Какое исключение будет и чего вы хотите достичь. Согласно вашему вопросу, PartTimeEmployee является независимой организацией, которая будет работать должным образом.