Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EntityManager标识符生成异常?_Java_Entity Bean - Fatal编程技术网

Java EntityManager标识符生成异常?

Java EntityManager标识符生成异常?,java,entity-bean,Java,Entity Bean,当我试图通过entitybean和entitymanager在DB中创建记录时,遇到了这个问题。我在UserManagerImpl.java中有两个方法,奇怪的是findalluser方法工作得很好,create one在Jboss-7控制台中抛出以下异常: 代码如下所示 identifier generation excepton: ids for this class must be manully assigned before calling save(): gmartinc.sw

当我试图通过entitybean和entitymanager在DB中创建记录时,遇到了这个问题。我在UserManagerImpl.java中有两个方法,奇怪的是findalluser方法工作得很好,create one在Jboss-7控制台中抛出以下异常: 代码如下所示

   identifier generation excepton: ids for this class must be manully assigned before calling save(): gmartinc.swe645.common.entitybeans.user 
我用来在MySql中创建表的sql语句是

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();
      }
}

真的不知道怎么了,提前谢谢

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


如果您的基础持久性管理器是hibernate,请查看hibernate生成器。

但是如果我添加@Generator,那么这是否意味着我的表必须是序列表?那么,创建序列表的正确语法是什么?