无法确定以下类型的字符串:字符串,在表:STUDENT,对于列:[org.hibernate.mapping.Column(SNAME)]

时间:2018-09-27 17:26:12

标签: java spring hibernate

如何解决此异常...请帮助我... 当我执行这个简单的休眠程序时。我收到此异常:

Exception in thread "main" org.hibernate.MappingException: Could not determine type for: String, at table: STUDENT, for columns: [org.hibernate.mapping.Column(SNAME)]

映射文件:

<?xml version = "1.0" encoding = "utf-8"?>

<hibernate-mapping>
<class name = "Student" table = "STUDENT" >
    <meta attribute="Class description">
        This contains Student details.
    </meta>
    <id name="id" type="int" column="id">
        <generator class="native"/>
    </id>
    <property name="name" column="SNAME" type="String"/>
    <property name="mNo" column="MNO" type="String"/>
    <property name="marks" column="MARKS" type="String"/>

</class>

配置文件:

<?xml version = "1.0" encoding = "utf-8"?>

<hibernate-configuration>
<session-factory>
    <!-- <property name="hibernate.dialect">org.hibernate.dialect.MySQLdialect</property> -->
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/firsthibernate</property>
    <property name="hibernate.connection.user">root</property>
    <property name="hibernate.connection.password">asdf</property>
    <mapping resource="Student.hbm.xml"/>
</session-factory>

Pojo类:

public class Student {
private int id;
private String name;
private String mNo;
private String marks;
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getmNo() {
    return mNo;
}
public void setmNo(String mNo) {
    this.mNo = mNo;
}
public String getMarks() {
    return marks;
}
public void setMarks(String marks) {
    marks = marks;
}

}

测试类:

import org.hibernate.Session;    
import org.hibernate.SessionFactory;    
import org.hibernate.Transaction;    
import org.hibernate.cfg.Configuration;



public class DemoStudent {

public static void main(String[] args) {
    Student st=new Student();
    st.setId(1);
    st.setName("Amit");
    st.setmNo("8927070972");
    st.setMarks("98%");

    Configuration cfg=new Configuration();
    cfg.configure();
    SessionFactory sf=cfg.buildSessionFactory();
    Session s=sf.openSession();
    Transaction tr=s.beginTransaction();
    tr.begin();
    s.save(st);
    tr.commit();

}

}

在此执行简单的休眠程序时,请先感谢...。我得到了这个,请帮助我在该程序中出现错误的地方。

1 个答案:

答案 0 :(得分:0)

在休眠映射文件中,将type用作字符串而不是String。

<property name="name" column="SNAME" 
type="string"/>