EclipseLink поддерживает запросы и связи с интерфейсами, но в настоящее время не в аннотациях.
Для сопоставления интерфейса вы можете использовать SessionCustomizer.
public class MyCustomizer implements SessionCustomizer {
public void customize(Session session) {
RelationalDescriptor descriptor = new RelationalDescriptor();
descriptor.setJavaInterface(Y.class);
descriptor.setAlias("Y");
session.addDescriptor(descriptor);
}
}
Отображение интерфейса позволяет запрашивать интерфейс, который возвращает любой из его подклассов, и определять отношения с интерфейсом.
Если интерфейс используется через аннотацию @VariableOneToOne, он будет автоматически отображен.