急、急、急...增、查、改都没问题,就是删除报错: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;
}
}
<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;
}
}
<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看的
DELETE方法:public void deleteUser(String studentId) {
IUser iUser=DaoFactory.getDaoInstance();
if(iUser.queryByID(studentId)!=null){
iUser.delete(studentId);
}
else {
System.out.println("学号ID不存在");
}
}
谢谢大哥,问题解决了! 我这样理解你的话的,不知道是不是符合你本来的意愿...
要删除表中的某个记录,应该指定其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);
}