hibernate高手请进,exception setting property value with CGLIB 问题
表间关系如下:
-- Create table
create table T_TOPIC_APPLIED
(
BOOTHS INTEGER,
SPACE NUMBER(5,1),
TOPICID NUMBER(10) not null,
TOPICAPPLIEDID NUMBER(10) not null,
USERID NUMBER(10) not null,
EXPOID NUMBER(10) not null
)
tablespace EXPO
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table T_TOPIC_APPLIED
add primary key (TOPICAPPLIEDID)
using index
tablespace EXPO
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table T_TOPIC_APPLIED
add constraint FK_TOPIC_APPLIED_1 foreign key (EXPOID)
references T_EXPO (EXPOID) on delete cascade;
alter table T_TOPIC_APPLIED
add foreign key (TOPICID)
references T_EXPO_TOPIC (TOPICID) on delete cascade;
alter table T_TOPIC_APPLIED
add foreign key (USERID)
references T_USER (USERID) on delete cascade;
-- Create table
create table T_TOPIC_ITEM_APPLIED
(
ITEMAPPLIEDID NUMBER(10) not null,
ITEMID NUMBER(10) not null,
TOPICAPPLIEDID NUMBER(10) not null
)
tablespace EXPO
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table T_TOPIC_ITEM_APPLIED
add primary key (ITEMAPPLIEDID)
using index
tablespace EXPO
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table T_TOPIC_ITEM_APPLIED
add foreign key (TOPICAPPLIEDID)
references T_TOPIC_APPLIED (TOPICAPPLIEDID) on delete cascade;
alter table T_TOPIC_ITEM_APPLIED
add foreign key (ITEMID)
references T_TOPIC_ITEM (ITEMID) on delete cascade;
hibernate配置如下:
<?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" >
<!-- DO NOT EDIT: This is a generated file that is synchronized -->
<!-- by MyEclipse Hibernate tool integration. -->
<!-- Created Mon Nov 21 15:05:29 CST 2005 -->
<hibernate-mapping package="org.caexpo.expo.model">
<class
name="TTopicApplied"
table="T_TOPIC_APPLIED"
dynamic-insert="true"
dynamic-update="true"
>
<id name="topicappliedid" column="TOPICAPPLIEDID" type="long">
<generator class="sequence">
<param name="sequence">S_TOPIC_APPLIED</param>
</generator>
</id>
<property name="booths" column="BOOTHS" type="int" />
<property name="space" column="SPACE" type="double" />
<many-to-one name="expoTopic" column="TOPICID" class="TExpoTopic" not-null="true"/>
<many-to-one name="expo" column="EXPOID" class="TExpo" not-null="true"/>
<many-to-one name="user" column="USERID" class="TUser" not-null="true"/>
<set name="topicItemAppliedSet" inverse="true" lazy="true">
<key column="TOPICAPPLIEDID"/>
<one-to-many class="TTopicItemApplied"/>
</set>
</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" >
<!-- DO NOT EDIT: This is a generated file that is synchronized -->
<!-- by MyEclipse Hibernate tool integration. -->
<!-- Created Mon Nov 21 15:05:29 CST 2005 -->
<hibernate-mapping package="org.caexpo.expo.model">
<class name="TTopicItemApplied" table="T_TOPIC_ITEM_APPLIED">
<id name="itemappliedid" column="ITEMAPPLIEDID" type="long">
<generator class="sequence">
<param name="sequence">S_TOPIC_ITEM_APPLIED</param>
</generator>
</id>
<many-to-one name="topicApplied" column="TOPICAPPLIEDID" class="TTopicApplied" not-null="true"/>
<many-to-one name="topicItem" column="ITEMID" class="TTopicItem" not-null="true"/>
</class>
</hibernate-mapping>
执行查询语句HQL:
from TTopicApplied as a
当数据库中T_TOPIC_APPLIED有数据时程序出现问题:
javax.servlet.ServletException: [BaseAction->execute] Error, message = exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of org.caexpo.expo.model.TTopicApplied.setTopicItemAppliedSet
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.caexpo.encoding.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:88)
org.caexpo.encoding.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:88)
但数据库中T_TOPIC_APPLIED的没有数据时正常.