Java org.hibernate.exception.MappingException或ConstraintViolation
我正在使用Hibernate4.1.9。我有用户,用户有账户列表,账户有交易列表。这是我的hbm.xmlJava org.hibernate.exception.MappingException或ConstraintViolation,java,hibernate,Java,Hibernate,我正在使用Hibernate4.1.9。我有用户,用户有账户列表,账户有交易列表。这是我的hbm.xml <?xml version="1.0"?> 如果我将inverse=“true”保留在帐户列表上(在用户中),我将获得ConstraintViolationException,因为用户ID没有被放入insert查询中。如果我从帐户列表中去掉inverse=“true”,我将得到org.hibernate.MappingException:实体映射中的重复列:com
<?xml version="1.0"?>
如果我将inverse=“true”保留在帐户列表上(在用户中),我将获得ConstraintViolationException,因为用户ID没有被放入insert查询中。如果我从帐户列表中去掉inverse=“true”,我将得到org.hibernate.MappingException:实体映射中的重复列:com.joe.data.Account列:accountid(应使用insert=“false”update=“false”进行映射)
为了澄清小写名称是数据库列名称,大小写是类变量名称。我知道事务类还不能很好地工作,但如果我可以让帐户插入,我也可以做同样的事情让事务插入
编辑:我在Account类中添加了多对一,现在我遇到了另一个异常,hibernate抱怨com.joe.data.Account中缺少userId的getter为了得到inverse=“true”工作,需要为Account中的用户和事务类中的Account定义多对一和映射 我现在添加了它,它说我在Account中缺少userId的getter您的Account类应该有一个User对象及其相应的访问器方法
<class name="User" table="users">
<id name="userId" column="userid">
<generator class="increment"/>
</id>
<property name="username" column="username" not-null="true"/>
<property name="password" column="password" not-null="true"/>
<property name="registerDate" type="timestamp" column="register_date"/>
<list name="accounts" table="accounts" inverse="true" cascade="all">
<key column="userid" not-null="true"/>
<index column="accountid"/>
<one-to-many class="com.joe.data.Account"/>
</list>
</class>
<class name="Account" table="accounts">
<id name="accountId" column="accountid">
<generator class="increment"/>
</id>
<property name="balance" type="big_decimal" column="balance"/>
<property name="lastModified" type="timestamp" column="last_modified"/>
<list name="txns" table="transactions" inverse="true" cascade="all">
<key column="accountId" not-null="true"/>
<index column="transactionId"/>
<one-to-many class="com.joe.data.Transaction"/>
</list>
<many-to-one name="userId" class="User" column="userid" not-null="true"
unique="true" cascade="all"/>
<many-to-one name="accountType" class="AccountType" column="account_type"
not-null="true" cascade="all" unique="true" />
</class>
<class name="Transaction" table="transactions">
<id name="transactionId" column="transactionid">
<generator class="increment"/>
</id>
<property name="description" column="description"/>
<property name="amount" type="big_decimal" column="amount"/>
<property name="dateAdded" column="date_added"/>
<property name="reoccuring" type="numeric_boolean" column="reoccuring"/>
<many-to-one name="category" class="Category" column="category"
not-null="true" cascade="all" unique="true" />
</class>
<class name="Category" table="categories">
<id name="categoryId" column="categoryid"/>
<property name="categoryName" column="categoryname" not-null="true"/>
</class>
<class name="AccountType" table="account_types">
<id name="accountType" column="account_type"/>
<property name="accountName" column="name"/>
</class>