有这个这样的实体类:
@Entity
@Table(name="User")
public class User {
private String userid;
private String username;
private String userpasswd;
private String privileges;
private String comment; @Id
@GeneratedValue
@Column(name="userid")
public void setUserid(String userid){
this.userid = userid;
}
public String getUserid(){
return this.userid;
}


@Column(name="username")
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return this.username;
}

@Column(name="userpasswd")
public void setUserpasswd(String userpasswd){
this.userpasswd = userpasswd;
}
public String getUserpasswd(){
return this.userpasswd;
}

@Column(name="privileges")
public String getPrivileges() {
return privileges;
}
public void setPrivileges(String privileges) {
this.privileges = privileges;
} @Column(name="comment")
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}使用了Hibernate Annotation,结果总是报错。
org.hibernate.AnnotationException: No identifier specified for entity: com.alligator.domain.User急!

解决方案 »

  1.   

    简单检查下你的hibernate配置文件!
      

  2.   

    把annotation @Id
    @GeneratedValue
    @Column(name="userid")放在变量声明的private String userid;上面
      

  3.   

    没有使用xml文件
    在spring的servlet.xml
    是这样设置的
    <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property  name="dataSource" ref="myDataSource" />
    <property  name="annotatedClasses">
    <list>
    <value>com.alligator.domain.User</value>
    </list>
    </property>
    <property  name="hibernateProperties">
    <props>
                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                    <prop key="hibernate.show_sql">true</prop>
    </props>
    </property>
    </bean>
      

  4.   

    个人不建议你这样的方式 你这样就破坏了javabean的封装 直接访问私有的变量了 
      

  5.   

    @Id
    @GeneratedValue
    @Column(name="userid")
    放在变量声明的private String userid;上面还是private,还是要get/set访问。