У меня есть универсальный класс, который также является сопоставленным суперклассом, который имеет закрытое поле, которое содержит указатель на другой объект того же типа:
@MappedSuperclass
public abstract class MyClass<T extends MyIfc<T>>
implements MyIfc<T>
{
@OneToOne()
@JoinColumn(name = "previous", nullable = true)
private T previous;
...
}
Моя проблема заключается в том, что Eclipse показывает ошибку в файле в OneToOne "Target Entity" T ", поскольку предыдущий не является Entity." Все реализации MyIfc, по сути, являются сущностями. Я также должен добавить, что каждая конкретная реализация, которая наследуется от MyClass, использует различное значение для T (потому что T является самим собой), поэтому я не могу использовать атрибут targetEntity.
Полагаю, что если ответа нет, мне придется перенести эту аннотацию JPA на все конкретные подклассы MyClass. Просто кажется как JPA / Hibernate должен быть достаточно умным, чтобы знать, что все это сработает во время выполнения. Заставляет меня задуматься, стоит ли мне как-то игнорировать эту ошибку.