this.getHibernateTemplate().save(favoitem)时出错
org.hibernate.PropertyValueException: not-null property references a null or transient value: com.frogstore.pojo.Product.category
传进去的值正常
Favoriteitem的配置文件
<hibernate-mapping>
<class name="com.frogstore.pojo.Favoriteitem" table="FAVORITEITEM" schema="ADMIN">
<id name="favoriteitemid" type="java.lang.Long">
<column name="FAVORITEITEMID" precision="20" scale="0" />
<generator class="sequence"></generator>
</id>
<many-to-one name="favorite" class="com.frogstore.pojo.Favorite" fetch="select">
<column name="FAVORITEID" precision="20" scale="0" not-null="true" />
</many-to-one>
<!-- <many-to-one name="product" class="com.frogstore.pojo.Product" fetch="select">
<column name="PRODUCTID" precision="20" scale="0" not-null="true" />
</many-to-one>-->
<many-to-one name="product" column="PRODUCTID"
class="com.frogstore.pojo.Product"
lazy="false" unique="true" cascade="all" not-null="true" >
</many-to-one>
<property name="favoritedate" type="java.util.Date">
<column name="FAVORITEDATE" length="7" not-null="true" />
</property>
</class>
</hibernate-mapping>
Product的配置文件
<hibernate-mapping>
<class name="com.frogstore.pojo.Product" table="PRODUCT" schema="ADMIN">
<id name="productid" type="java.lang.Long">
<column name="PRODUCTID" precision="20" scale="0" />
<generator class="sequence"></generator>
</id>
<many-to-one name="category" class="com.frogstore.pojo.Category" fetch="select">
<column name="CATEGORYID" precision="20" scale="0" not-null="true" />
</many-to-one>
<property name="pname" type="java.lang.String">
<column name="PNAME" length="30" not-null="true" />
</property>
<property name="descriptions" type="java.lang.String">
<column name="DESCRIPTIONS" length="100" />
</property>
<property name="picture" type="java.lang.String">
<column name="PICTURE" length="50" />
</property>
<property name="price" type="java.lang.Double">
<column name="PRICE" precision="10" not-null="true" />
</property>
<property name="discount" type="java.lang.Long">
<column name="DISCOUNT" precision="10" scale="0" not-null="true" />
</property>
<property name="storenum" type="java.lang.Long">
<column name="STORENUM" precision="10" scale="0" not-null="true" />
</property>
<property name="updatetime" type="java.util.Date">
<column name="UPDATETIME" length="7" not-null="true" />
</property>
<property name="status" type="java.lang.Long">
<column name="STATUS" precision="10" scale="0" />
</property>
<set name="favoriteitems" inverse="true">
<key>
<column name="PRODUCTID" precision="20" scale="0" not-null="false" />
</key>
<one-to-many class="com.frogstore.pojo.Favoriteitem" />
</set>
<set name="orderitems" inverse="true">
<key>
<column name="PRODUCTID" precision="20" scale="0" not-null="true" />
</key>
<one-to-many class="com.frogstore.pojo.Orderitem" />
</set>
<set name="commentses" inverse="true">
<key>
<column name="PRODUCTID" precision="20" scale="0" not-null="true" />
</key>
<one-to-many class="com.frogstore.pojo.Comments" />
</set>
</class>
</hibernate-mapping>
Category的配置文件
<hibernate-mapping>
<class name="com.frogstore.pojo.Category" table="CATEGORY" schema="ADMIN">
<id name="categoryid" type="java.lang.Long">
<column name="CATEGORYID" precision="20" scale="0" />
<generator class="sequence"></generator>
</id>
<property name="categoryname" type="java.lang.String">
<column name="CATEGORYNAME" length="30" not-null="true" />
</property>
<property name="descriptions" type="java.lang.String">
<column name="DESCRIPTIONS" length="400" />
</property>
<property name="picture" type="java.lang.String">
<column name="PICTURE" length="50" />
</property>
<property name="parentid" type="java.lang.Long">
<column name="PARENTID" precision="20" scale="0" not-null="true" />
</property>
<set name="products" inverse="true">
<key>
<column name="CATEGORYID" precision="20" scale="0" not-null="true" />
</key>
<one-to-many class="com.frogstore.pojo.Product" />
</set>
</class>
</hibernate-mapping>
org.hibernate.PropertyValueException: not-null property references a null or transient value: com.frogstore.pojo.Product.category
传进去的值正常
Favoriteitem的配置文件
<hibernate-mapping>
<class name="com.frogstore.pojo.Favoriteitem" table="FAVORITEITEM" schema="ADMIN">
<id name="favoriteitemid" type="java.lang.Long">
<column name="FAVORITEITEMID" precision="20" scale="0" />
<generator class="sequence"></generator>
</id>
<many-to-one name="favorite" class="com.frogstore.pojo.Favorite" fetch="select">
<column name="FAVORITEID" precision="20" scale="0" not-null="true" />
</many-to-one>
<!-- <many-to-one name="product" class="com.frogstore.pojo.Product" fetch="select">
<column name="PRODUCTID" precision="20" scale="0" not-null="true" />
</many-to-one>-->
<many-to-one name="product" column="PRODUCTID"
class="com.frogstore.pojo.Product"
lazy="false" unique="true" cascade="all" not-null="true" >
</many-to-one>
<property name="favoritedate" type="java.util.Date">
<column name="FAVORITEDATE" length="7" not-null="true" />
</property>
</class>
</hibernate-mapping>
Product的配置文件
<hibernate-mapping>
<class name="com.frogstore.pojo.Product" table="PRODUCT" schema="ADMIN">
<id name="productid" type="java.lang.Long">
<column name="PRODUCTID" precision="20" scale="0" />
<generator class="sequence"></generator>
</id>
<many-to-one name="category" class="com.frogstore.pojo.Category" fetch="select">
<column name="CATEGORYID" precision="20" scale="0" not-null="true" />
</many-to-one>
<property name="pname" type="java.lang.String">
<column name="PNAME" length="30" not-null="true" />
</property>
<property name="descriptions" type="java.lang.String">
<column name="DESCRIPTIONS" length="100" />
</property>
<property name="picture" type="java.lang.String">
<column name="PICTURE" length="50" />
</property>
<property name="price" type="java.lang.Double">
<column name="PRICE" precision="10" not-null="true" />
</property>
<property name="discount" type="java.lang.Long">
<column name="DISCOUNT" precision="10" scale="0" not-null="true" />
</property>
<property name="storenum" type="java.lang.Long">
<column name="STORENUM" precision="10" scale="0" not-null="true" />
</property>
<property name="updatetime" type="java.util.Date">
<column name="UPDATETIME" length="7" not-null="true" />
</property>
<property name="status" type="java.lang.Long">
<column name="STATUS" precision="10" scale="0" />
</property>
<set name="favoriteitems" inverse="true">
<key>
<column name="PRODUCTID" precision="20" scale="0" not-null="false" />
</key>
<one-to-many class="com.frogstore.pojo.Favoriteitem" />
</set>
<set name="orderitems" inverse="true">
<key>
<column name="PRODUCTID" precision="20" scale="0" not-null="true" />
</key>
<one-to-many class="com.frogstore.pojo.Orderitem" />
</set>
<set name="commentses" inverse="true">
<key>
<column name="PRODUCTID" precision="20" scale="0" not-null="true" />
</key>
<one-to-many class="com.frogstore.pojo.Comments" />
</set>
</class>
</hibernate-mapping>
Category的配置文件
<hibernate-mapping>
<class name="com.frogstore.pojo.Category" table="CATEGORY" schema="ADMIN">
<id name="categoryid" type="java.lang.Long">
<column name="CATEGORYID" precision="20" scale="0" />
<generator class="sequence"></generator>
</id>
<property name="categoryname" type="java.lang.String">
<column name="CATEGORYNAME" length="30" not-null="true" />
</property>
<property name="descriptions" type="java.lang.String">
<column name="DESCRIPTIONS" length="400" />
</property>
<property name="picture" type="java.lang.String">
<column name="PICTURE" length="50" />
</property>
<property name="parentid" type="java.lang.Long">
<column name="PARENTID" precision="20" scale="0" not-null="true" />
</property>
<set name="products" inverse="true">
<key>
<column name="CATEGORYID" precision="20" scale="0" not-null="true" />
</key>
<one-to-many class="com.frogstore.pojo.Product" />
</set>
</class>
</hibernate-mapping>
<column name="CATEGORYID" precision="20" scale="0" not-null="true" />
</many-to-one> 这里不允许为NULL
你保存的时候他的数据为NULL
class="com.frogstore.pojo.Product"
lazy="false" unique="true" cascade="all" not-null="true" >
把里边的cascade删除掉就解决了