Исключение: java .lang.IllegalArgumentException: тип, указанный для TypedQuery [com.tk.E1], несовместим с типом возврата запроса [class com.tk.User]
Кто-нибудь знает, в чем может быть проблема? Речь идет о преобразовании суперкласса в подкласс с помощью NamedQuery. Большое спасибо!
Пользователь. java
@Entity
@Table(name = "user")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "r")
@NamedQueries({
@NamedQuery(name = "searchById", query = "SELECT u FROM User u where u.id = :id"))
})
public class User extends MappedObect {
@Id
@Column(nullable = false, name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
.
.
}
Сотрудник1. java
@Entity
@Table(name = "employee1")
@PrimaryKeyJoinColumn(referencedColumnName = "id")
@DiscriminatorValue("E1")
public class Employee1 extends User {
.
.
}
Сотрудник2. java
@Entity
@Table(name = "employee2")
@PrimaryKeyJoinColumn(referencedColumnName = "id")
@DiscriminatorValue("E2")
public class Employee2 extends User {
.
.
}
FetchResult. java
public void getId(Long id) {
TypedQuery<E1> query = entityManager.createNamedQuery("searchById", E1.class);
query.setParameter("id", id);
}