ユーザー名でユーザーを取得できるこの単純なメソッドを呼び出すと、この問題が発生します。
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long id;
@Constraints.Required
public String username;
@Constraints.Required
public String password;
public boolean isAdmin;
public static User findById(Long id) {
return JPA.em().find(User.class, id);
}
public void update(Long id) {
this.id = id;
JPA.em().merge(this);
}
public void save() {
JPA.em().persist(this);
}
public void delete() {
JPA.em().remove(this);
}
public static User findByUsername(String username) {
Query query = JPA.em().createQuery("select u from User u where username = :username", User.class);
query.setParameter("username", username);
return (User) query.getSingleResult();
}
}
クエリの作成時にエラーが発生し、次のようになります。
[IllegalArgumentException: Type specified for TypedQuery [models.User] is incompatible with query return type [interface java.util.Map]]
私は Hibernate と PlayFramework を使用していますが、これを修正する方法を知っている人はいますか?