配置文件如下
<?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.sshshop.entity.Collection" table="Collection" schema="dbo" catalog="TShop" lazy="false">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native" />
</id>
<many-to-one name="userInfo" class="com.sshshop.entity.UserInfo" fetch="select">
<column name="UserID" not-null="false" />
</many-to-one>
<many-to-one name="product" class="com.sshshop.entity.Product" fetch="select">
<column name="ProductID" not-null="false"/>
</many-to-one>
<many-to-one name="productType" class="com.sshshop.entity.ProductType" fetch="select">
<column name="TypeID" not-null="false" />
</many-to-one>
<property name="proName" type="java.lang.String">
<column name="ProName" length="50" />
</property>
<property name="nameInfo" type="java.lang.String">
<column name="NameInfo" length="50" />
</property>
<property name="price" type="java.lang.Double">
<column name="Price" precision="9" />
</property>
<property name="discount" type="java.lang.Double">
<column name="Discount" precision="9" />
</property>
<property name="amount" type="java.lang.Integer">
<column name="Amount" />
</property>
<property name="hits" type="java.lang.Integer">
<column name="Hits" />
</property>
<property name="describeInfo" type="java.lang.String">
<column name="DescribeInfo" />
</property>
<property name="picture" type="java.lang.String">
<column name="Picture" length="50" />
</property>
<property name="memo" type="java.lang.String">
<column name="Memo" />
</property>
</class>
</hibernate-mapping>
<?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.sshshop.entity.Collection" table="Collection" schema="dbo" catalog="TShop" lazy="false">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native" />
</id>
<many-to-one name="userInfo" class="com.sshshop.entity.UserInfo" fetch="select">
<column name="UserID" not-null="false" />
</many-to-one>
<many-to-one name="product" class="com.sshshop.entity.Product" fetch="select">
<column name="ProductID" not-null="false"/>
</many-to-one>
<many-to-one name="productType" class="com.sshshop.entity.ProductType" fetch="select">
<column name="TypeID" not-null="false" />
</many-to-one>
<property name="proName" type="java.lang.String">
<column name="ProName" length="50" />
</property>
<property name="nameInfo" type="java.lang.String">
<column name="NameInfo" length="50" />
</property>
<property name="price" type="java.lang.Double">
<column name="Price" precision="9" />
</property>
<property name="discount" type="java.lang.Double">
<column name="Discount" precision="9" />
</property>
<property name="amount" type="java.lang.Integer">
<column name="Amount" />
</property>
<property name="hits" type="java.lang.Integer">
<column name="Hits" />
</property>
<property name="describeInfo" type="java.lang.String">
<column name="DescribeInfo" />
</property>
<property name="picture" type="java.lang.String">
<column name="Picture" length="50" />
</property>
<property name="memo" type="java.lang.String">
<column name="Memo" />
</property>
</class>
</hibernate-mapping>
解决方案 »
- tomcat为什么不会在MyEclipse一启动的时候就在Servers里面显示?
- Maven package命令后MANIFEST.MF文件内容丢失
- Tomcat并发测试报“apr_pollset_create failed: Invalid argument”
- 文件无法检入到ClearCase,请帮忙看下是什么原因?
- 怎么让hibernate中让log4j起作用呀?
- lcene中设置Boots问题,急啊
- AJAX 没权限
- javaMail
- 一个AI程序,它说它是JAVA编的,兄弟们研究一下!
- Websphere7.0下部署两个Struts2应用出错
- 为什么这么多的人去学 Struts 2 呢?难道 Javaserver Faces 不好么?
- hibernate 入门碰到麻烦,帮忙看看~
<!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.sshshop.entity.UserInfo" table="UserInfo" schema="dbo" catalog="TShop" lazy="false">
<id name="loginId" type="java.lang.Integer">
<column name="LoginID" />
<generator class="native" />
</id>
<many-to-one name="role" class="com.sshshop.entity.Role" fetch="select">
<column name="RoleID" not-null="false" />
</many-to-one>
<property name="loginName" type="java.lang.String">
<column name="LoginName" length="20" unique="true" />
</property>
<property name="realName" type="java.lang.String">
<column name="RealName" length="20" />
</property>
<property name="password" type="java.lang.String">
<column name="Password" length="32" />
</property>
<property name="gender" type="java.lang.String">
<column name="Gender" length="2" />
</property>
<property name="birthday" type="java.lang.String">
<column name="Birthday" length="20" />
</property>
<property name="country" type="java.lang.String">
<column name="Country" length="50" />
</property>
<property name="city" type="java.lang.String">
<column name="City" length="50" />
</property>
<property name="address" type="java.lang.String">
<column name="Address" length="200" />
</property>
<property name="tel" type="java.lang.String">
<column name="Tel" length="20" />
</property>
<property name="mobile" type="java.lang.String">
<column name="Mobile" length="11" />
</property>
<property name="zip" type="java.lang.String">
<column name="Zip" length="8" />
</property>
<property name="email" type="java.lang.String">
<column name="Email" length="20" />
</property>
<property name="imType" type="java.lang.String">
<column name="ImType" length="10" />
</property>
<property name="imNumber" type="java.lang.String">
<column name="ImNumber" length="10" />
</property>
<property name="idcardType" type="java.lang.String">
<column name="IDCardType" length="10" />
</property>
<property name="idcardNo" type="java.lang.String">
<column name="IDCardNo" length="20" />
</property>
<property name="userScore" type="java.lang.Integer">
<column name="UserScore" />
</property>
<property name="lastLoginDate" type="java.util.Date">
<column name="LastLoginDate" length="23" />
</property>
<set name="orderses" inverse="true" >
<key>
<column name="UserID" />
</key>
<one-to-many class="com.sshshop.entity.Orders" />
</set>
<set name="replyMessages" inverse="true">
<key>
<column name="UserID" />
</key>
<one-to-many class="com.sshshop.entity.ReplyMessage" />
</set>
<set name="collections" inverse="true" cascade="all-delete-orphan">
<key>
<column name="UserID" not-null="false"/>
</key>
<one-to-many class="com.sshshop.entity.Collection" />
</set>
<set name="reviews" inverse="true">
<key>
<column name="UserID" />
</key>
<one-to-many class="com.sshshop.entity.Review" />
</set>
<set name="cartInfos" inverse="true" >
<key>
<column name="LoginID" />
</key>
<one-to-many class="com.sshshop.entity.CartInfo" />
</set>
<set name="blogMessages" inverse="true">
<key>
<column name="UserID" />
</key>
<one-to-many class="com.sshshop.entity.BlogMessage" />
</set>
<set name="shipAddresses" inverse="true" >
<key>
<column name="UserID" />
</key>
<one-to-many class="com.sshshop.entity.ShipAddress" />
</set>
</class>
</hibernate-mapping>
异常1:not-null property references a null or transient value
解决方法:将“一对多”关系中的“一”方,not-null设置为false
(参考资料:http://www.thearcmind.com/confluence/pages/viewpage.action?pageId=212) 异常2:org.hibernate.TransientObjectException: object references an unsaved transient instance
解决方法:cascade="save-update,persist"
(参考资料:http://www.laliluna.de/254.html) 异常3:org.hibernate.QueryException: could not resolve property
解决方法:"from Category category where category.userID = :userID"修改为"from Category category where userID = :userID"或者"from Category category where category.user.id = :userID"
(参考资料:http://www.laliluna.de/277.html) 异常4:could not initialize proxy - the owning Session was closed
解决方法:设置lazy为false
(参考资料:http://forum.springframework.org/showthread.php?t=27993) <many-to-one name="userInfo" class="com.sshshop.entity.UserInfo" fetch="select" cascade="save-update" >
<column name="UserID" not-null="false" />
</many-to-one> 这只是初步判断。最好把抛异常的方法给贴出来。
public Serializable save(Object entity) throws Exception {
return this.getHibernateTemplate().save(entity);
}
我是把collectionsbean传进去的
cartbean.setProduct(product);
userbean.setLoginName(username);
cb.setProduct(product);
cb.setUserInfo(userbean);
if (collectionbiz.SelectCollections(cb,page).size()==0) { Serializable pk=collectionbiz.saveCollections(cb, userbean);}
这里是调用
<class name="com.sshshop.entity.Collection" table="Collection" schema="dbo" catalog="TShop" lazy="false">
<id name="id" type="java.lang.Integer">
<column name="ID" />
...<many-to-one name="userInfo" class="com.sshshop.entity.UserInfo" fetch="select" cascade="save-update" >
<column name="UserID" not-null="false" />
</many-to-one>...
...
可以使用saveorupdate,
估计你存的时候,参数个数什么的或类型什么的出现问题了