数据库里我只有一个user表,里面3个字段(id为主键,username,password),现在我反转这个表后,entity文件夹下出了3个文件,一个xml,一个user.java 一个userId.java,正常的不就是2个么,没那个userId.java,现在username和password都在userID.java里面了,正常的不就是在user.java里么?配置文件也有不同,谁知道是怎么回事?
配置文件代码如下:
<hibernate-mapping>
    <class name="com.accp.entity.User" table="user" schema="dbo" catalog="test">
        <composite-id name="id" class="com.accp.entity.UserId">
            <key-property name="username" type="java.lang.String">
                <column name="username" length="50" />
            </key-property>
            <key-property name="password" type="java.lang.String">
                <column name="password" length="50" />
            </key-property>
        </composite-id>
    </class>
</hibernate-mapping>

解决方案 »

  1.   

    <composite-id name="id" class="com.accp.entity.UserId">这句就决定你又出来一个class
    <hibernate-mapping auto-import="false">
    <class table="T_User" name="com.xxx.model.User">
        <id name="id">
          <generator class="native"/>
        </id>
        <property name="username" not-null="true" unique="true"/>
        <property name="password" not-null="true"/>
            <one-to-one unique="true" name="otherTable"/>
      </class>
    </hibernate-mapping>
      

  2.   

    去看看hibernate id的生成策略。。
      

  3.   

    看看API 主键生成策略数据库不同,主键策略也不同
      

  4.   

    可我之前也是用的SQL,没出这样的问题,这次也是用的SQL,这主键策略就有问题了.....