首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EntityManager标识符生成异常?

EntityManager标识符生成异常?
EN

Stack Overflow用户
提问于 2011-11-05 15:42:55
回答 1查看 278关注 0票数 0

当我试图通过entitybean和entitymanager在DB中创建记录时,我遇到了这个问题。我在UserManagerImpl.java中有两个方法,奇怪的是findalluser方法运行良好,在Jboss-7控制台中创建一个方法会抛出以下异常:

代码语言:javascript
复制
   identifier generation excepton: ids for this class must be manully assigned before calling save(): gmartinc.swe645.common.entitybeans.user 

我用来在MySql中创建表的sql语句是

代码语言:javascript
复制
create table users(
userid varchar(100) primary key,
firstname varchar(100),
lastname varchar(100),
group varchar(100),
team varchar(100)
);

and the Entitybean to map this table is 

    import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;


@Entity
@Table(name = "users")
public class user implements Serializable {
  private String userid;
  private String firstname;
  private String lastname;
  private String password;
  private String team;


  @Id
  @Column(name="userid")
  public String getUserId() {
    return userid;
  }
  public void setUserId(String id) {
    this.userid = id;
  }

  @Column(name="firstname")
  public String getFirstName() {
    return firstname;
  }
  public void setFirstName(String firstName) {
    this.firstname = firstName;
  }

  @Column(name = "lastname")
  public String getLastName() {
    return lastname;
  }
  public void setLastName(String lastName) {
    this.lastname = lastName;
  }

  @Column(name = "password")
  public String getPassWord() {
    return password;
  }
  public void setPassWord(String password) {
    this.password = password;
  }

  @Column(name = "team")
  public String getTeam() {
    return team;
  }
  public void setTeam(String team) {
    this.team = team;
  }


}

and the UserManagerImpl.java is 
import java.util.List;

import javax.ejb.Stateless;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;


@Stateless
public class UserManagerImpl implements UserManagerRemote {
  @PersistenceContext(unitName = "Swe645University")
  private EntityManager entityManager;

  public void createUser(user us) {
    entityManager.persist(us);
  }

  public List<user> findUser() {
        Query q = entityManager.createQuery(" from user p ");
        return q.getResultList();
      }
}

真的不知道出了什么问题,提前谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-11-05 15:59:03

你需要为你的id指定一个生成器。

如果您的底层持久性管理器是hibernate,那么可以看看hibernate生成器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8018855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档