这是user的mobel
package com.model;import java.util.HashSet;
import java.util.Set;/**
 * User entity. @author MyEclipse Persistence Tools
 */public class User implements java.io.Serializable { // Fields private String username;
private String password;
private Set jokes = new HashSet(0);
private Set blackholes = new HashSet(0); // Constructorse /** default constructor */
public User() {
} /** full constructor */
public User(String password, Set jokes, Set blackholes) {
this.password = password;
this.jokes = jokes;
this.blackholes = blackholes;
}
// Property accessors public String getUsername() {
return this.username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
} public Set getJokes() {
return this.jokes;
} public void setJokes(Set jokes) {
this.jokes = jokes;
} public Set getBlackholes() {
return this.blackholes;
} public void setBlackholes(Set blackholes) {
this.blackholes = blackholes;
}}
这是user.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.model.User" table="user" catalog="blackhole">
        <id name="username" type="string">
            <column name="username" length="20" />
            <generator class="native" />
        </id>
        <property name="password" type="string">
            <column name="password" length="20" />
        </property>
        <set name="jokes" inverse="true">
            <key>
                <column name="username" length="20" />
            </key>
            <one-to-many class="com.model.Joke" />
        </set>
        <set name="blackholes" inverse="true">
            <key>
                <column name="username" length="20" />
            </key>
            <one-to-many class="com.model.Blackhole" />
        </set>
    </class>
</hibernate-mapping>

解决方案 »

  1.   

    这是blackhole
    package com.model;import java.util.Date;/**
     * Blackhole entity. @author MyEclipse Persistence Tools
     */public class Blackhole implements java.io.Serializable { // Fields private Integer blackholeid;
    private User user;
    private String blackholecontent;
    private Date datetime; // Constructors /** default constructor */
    public Blackhole() {
    } /** full constructor */
    public Blackhole(User user, String blackholecontent, Date datetime) {
    this.user = user;
    this.blackholecontent = blackholecontent;
    this.datetime = datetime;
    } // Property accessors public Integer getBlackholeid() {
    return this.blackholeid;
    } public void setBlackholeid(Integer blackholeid) {
    this.blackholeid = blackholeid;
    } public User getUser() {
    return this.user;
    } public void setUser(User user) {
    this.user = user;
    } public String getBlackholecontent() {
    return this.blackholecontent;
    } public void setBlackholecontent(String blackholecontent) {
    this.blackholecontent = blackholecontent;
    } public Date getDatetime() {
    return this.datetime;
    } public void setDatetime(Date datetime) {
    this.datetime = datetime;
    }}
    这是blackhole.hbm.xml
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.model.Blackhole" table="blackhole" catalog="blackhole">
            <id name="blackholeid" type="integer">
                <column name="blackholeid" />
                <generator class="native" />
            </id>
            <many-to-one name="user" class="com.model.User" fetch="select">
                <column name="username" length="20" />
            </many-to-one>
            <property name="blackholecontent" type="string">
                <column name="blackholecontent" length="150" />
            </property>
            <property name="datetime" type="timestamp">
                <column name="datetime" length="19" />
            </property>
        </class>
    </hibernate-mapping>
      

  2.   

    删除user.hbm.xml中username配置的 <generator class="native" />
      

  3.   

    Field 'username' doesn't have a default value 
      

  4.   

    成功了,是删掉那个native,可是那不是主键的意思吗?删掉它会对外键产生影响吗?
      

  5.   

    你和下面的链接里比较下,看是不是你的数据库没有设置主键自增,http://zhidao.baidu.com/link?url=el8O2GylNuKhP-u5MovI-v6BhgYAP6iuOkeG0WcZFur77RdlMKbjjMvGmdd3Jvqb25Yc1p3_RshSD9OaJ6A2aa
      

  6.   

    不能删掉的吧,可以给name属性一个默认的初始值;
      

  7.   

    username是空的你的
    username是string类型不可以自增的。。
    给user类添加个id属性type位int