我看书上写hibernate、Java、数据库三者的类型有String、Java.lang.String、VARCHAR.这三个是对应的。没有见过string,
以下是我的映射文件。数据库中都是VARCHAR型,
<hibernate-mapping>
    <class name="com.esm.domain.Position" table="position" >
        <id name="postId" type="String">
            <column name="postID" length="22" />
            <generator class="assigned" />
        </id>
        <property name="postName" type="String">
            <column name="postName" length="50" />
        </property>
        <property name="postDept" type="String">
            <column name="postDept" length="50" />
        </property>
        <property name="postDes" type="String">
            <column name="postDes"  length="500" />
        </property>
    </class>
</hibernate-mapping>以下为Position.java中定义的属性:
         private String postId;
private String postName;
private String postDept;
private String postDes;但是这样写运行时出问题了。
Error Creating SessionFactory %%%%
org.hibernate.MappingException: Could not determine type for: String, for columns: [org.hibernate.mapping.Column(postName)]
然后我把String改为string就可以,这是怎么回事

解决方案 »

  1.   

    String是java的写法VARCHAR VARCHAR2 什么的是数据库的写法string是hibernate的写法
      

  2.   

    Java数据类型 Hibernate数据类型
    标准SQL数据类型
    (PS:对于不同的DB可能有所差异)
    byte、java.lang.Byte byte TINYINT
    short、java.lang.Short short SMALLINT
    int、java.lang.Integer integer INGEGER
    long、java.lang.Long long BIGINT
    float、java.lang.Float float FLOAT
    double、java.lang.Double double DOUBLE
    boolean、java.lang.Boolean boolean BIT
    java.lang.String string VARCHAR
    java.util.Date、java.sql.Date date DATE
    java.util.Date、java.sql.Time time TIME
    java.util.Date、java.sql.Timestamptimestamp TIMESTAMP
    java.util.Calendar calendar TIMESTAMP
    java.util.Calendar calendar_date DATE
    byte[] binary VARBINARY、BLOB
    java.lang.String text CLOB
    java.sql.Clob clob CLOB
    java.sql.Blob blob BLOB
      

  3.   


    Java数据类型 Hibernate数据类型 标准SQL数据类型
    (PS:对于不同的DB可能有所差异)
    byte、java.lang.Byte byte TINYINT
    short、java.lang.Short short SMALLINT
    int、java.lang.Integer integer INGEGER
    long、java.lang.Long long BIGINT
    float、java.lang.Float float FLOAT
    double、java.lang.Double double DOUBLE
    boolean、java.lang.Boolean boolean BIT
    java.lang.String string VARCHAR
    java.util.Date、java.sql.Date date DATE
    java.util.Date、java.sql.Time time TIME
    java.util.Date、java.sql.Timestamptimestamp TIMESTAMP
    java.util.Calendar calendar TIMESTAMP
    java.util.Calendar calendar_date DATE
    byte[] binary VARBINARY、BLOB
    java.lang.String text CLOB
    java.sql.Clob clob CLOB
    java.sql.Blob blob BLOB
      

  4.   

    <property name="postDes" type="java.lang.String">
      <column name="postDes" length="500" />
    这样写就好了
      

  5.   

    谢谢各位,我原来不知道在映射文件中java.lang.String和String是不相同的