hibernate的hbm.xml文件自动生成id的吗?

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-3-28 18:42:36 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    <class name="qiye.entity.Contact" table="CONTACT">
        <id name="company" type="java.lang.String">
            <column name="COMPANY" />
            <generator class="assigned" />
        </id>
        <property name="tel" type="java.lang.String">
            <column name="TEL" />
        </property>
        <property name="fax" type="java.lang.String">
            <column name="FAX" />
        </property>
        <property name="address" type="java.lang.String">
            <column name="ADDRESS" />
        </property>
        <property name="url" type="java.lang.String">
            <column name="URL" />
        </property>
    </class>
</hibernate-mapping>

<id name="company" type="java.lang.String">

        <column name="COMPANY" />
        <generator class="assigned" />
    </id>
    
    这个COMPANY字段明明不是id啊.
    
    

Contact.java

package qiye.entity;

public class Contact {
    private String company;
    private String tel;
    private String fax;
    private String address;
    private String url;
    
    public String getCompany(){
        return this.company;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getFax() {
        return fax;
    }
    public void setFax(String fax) {
        this.fax = fax;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public void setCompany(String company){
        this.company = company;
    }
}

Contact.java 我没有写id.

不能把

<id name="company" type="java.lang.String">
            <column name="COMPANY" />
            <generator class="assigned" />
        </id>

改成

<property name="company" type="java.lang.String">
            <column name="COMPANY" />
        </property>

吗?

阅读 2.9k
2 个回答

都用<id>这个标签了还不是主键id吗

既然是id,就是主键,那就不能了。
generator是指定主键生成策略,自动还是..

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题