Java EJB Web服务,实体未映射错误
我有实体类用户Java EJB Web服务,实体未映射错误,java,web-services,hibernate,jpa,ejb-3.1,Java,Web Services,Hibernate,Jpa,Ejb 3.1,我有实体类用户 @Entity(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; @Column(unique = true, nullable = false) private String email; /** skipped **/ 和无状态EJBDAO类(我使用的是jpa/hibernate)以及方法 @Override
@Entity(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(unique = true, nullable = false)
private String email;
/** skipped **/
和无状态EJBDAO类(我使用的是jpa/hibernate)以及方法
@Override
public User findByEmail(String name) {
TypedQuery<User> query = entityManager.createQuery("from User where email= :email", User.class);
query.setParameter("email", name);
return query.getSingleResult();
}
我的web服务非常简单:
@Stateless(name = "webServiceBean")
@WebService(serviceName = "webService")
public class MyWebService{
@EJB
private UserDao dao;
public String findUser(String email) {
return dao.findByEmail(email);
}
}
应用程序部署在JBoss7上。我正在使用EJB3.1和Hibernate4.3
有人知道这个例外的原因吗?为什么它只出现在Web服务中
User
,以及包名@Entity
或@Entity(name=“User”)
。您已将实体命名为user
,但在查询中尝试将其称为user
检查
@实体的名称属性
公共抽象java.lang.String名称
(可选)实体名称。默认为实体类的非限定名称此名称用于引用查询中的实体。该名称不能是Java持久性查询语言中的保留文字
在查询中将用户更改为小写已修复问题。谢谢
@Stateless(name = "webServiceBean")
@WebService(serviceName = "webService")
public class MyWebService{
@EJB
private UserDao dao;
public String findUser(String email) {
return dao.findByEmail(email);
}