急、急、急...增、查、改都没问题,就是删除报错:org.hibernate.MappingException: Unknown entity: java.lang.String,请高手赐教...User.hbm.xml文件如下:<hibernate-mapping>
    <class name="com.tables.User" table="user" >
        <id name="studentId" type="java.lang.String">  //主键studentId
            <column name="studentId" length="12" />
            <generator class="assigned" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" not-null="true" />
        </property>
    </class>
</hibernate-mapping>JAVA类删除方法public void delete(String studentId) {
Session session=HibernateUtil.getSession();
session.beginTransaction();
session.delete(studentId);
session.getTransaction().commit();
HibernateUtil.closeSession(session);
}表的映射类User.javapublic class User {
private String studentId,name,password; public String getStudentId() {
return studentId;
} public void setStudentId(String studentId) {
this.studentId = studentId;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}

解决方案 »

  1.   

    楼主这代码写的有问题啊!你这工具类删除BEAN起码要把类的CLASS传递过去啊,让Hibernate知道你删除的是哪个类,映射到数据库知道是哪个表,如果两张表都是ID为1的记录,它怎么可能不出错呢!我很想看看你的DELETE方法咋写的。
      

  2.   

    hibernate-mapping>
        <class name="com.tables.User" table="user" >
            <id name="studentId" type="string">  //主键studentId
                <column name="studentId" length="12" />
                <generator class="assigned" />
            </id>
            <property name="name" type="string">
                <column name="name" />
            </property>
            <property name="password" type="string">
                <column name="password" not-null="true" />
            </property>
        </class>
    </hibernate-mapping>
    换成这样子这里面type应该是写给Hibernate看的
      

  3.   

    你说的话能不能再详细点,我怎么听的有点不明白:  工具类删除BEAN起码要把类的CLASS传递过去
    DELETE方法:public void deleteUser(String studentId) {
    IUser iUser=DaoFactory.getDaoInstance();
    if(iUser.queryByID(studentId)!=null){
    iUser.delete(studentId);
    }
    else {
    System.out.println("学号ID不存在");
    }
    }
      

  4.   


    谢谢大哥,问题解决了! 我这样理解你的话的,不知道是不是符合你本来的意愿...
    要删除表中的某个记录,应该指定其ID...
    代码如下:public void delete(String studentId) {
    Session session=HibernateUtil.getSession();
    session.beginTransaction();       //session.delete(studentId);删除记录指定不明确,问题代码...
    String hql = "DELETE User WHERE studentId=?";
    Query q = session.createQuery(hql);
    q.setString(0, studentId);
    q.executeUpdate();

    session.getTransaction().commit();
    HibernateUtil.closeSession(session);
    }