关联如下:
<hibernate-mapping package="com.cn.bean.goods">
<class name="Corporation" table="t_co" >
<id name="id" column="co_id" type="java.lang.Long">
<generator class="identity">
</generator>
</id>
<property name="name" type="string" length="32"/>
<property name="address" type="string" length="255"/>
<set name="id"  table="t_co_milk">
<key column="co_id"></key>
<many-to-many class="Milk" column="milk_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
另一个就不贴了
类:
public class Corporation {
private Long id;
private String name,address;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
错误日志:
Hibernate: insert into t_co (name, address) values (?, ?)
2008-8-6 9:08:16 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet Test threw exception
java.lang.ClassCastException: java.lang.Long
at org.hibernate.type.SetType.wrap(SetType.java:39)
at org.hibernate.event.def.WrapVisitor.processArrayOrNewCollection(WrapVisitor.java:84)
at org.hibernate.event.def.WrapVisitor.processCollection(WrapVisitor.java:51)
at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:101)
at org.hibernate.event.def.WrapVisitor.processValue(WrapVisitor.java:98)
at org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:55)
at org.hibernate.event.def.DefaultFlushEntityEventListener.wrapCollections(DefaultFlushEntityEventListener.java:178)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:111)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.cn.bean.servlet.Test.doPost(Test.java:34)
at com.cn.bean.servlet.Test.doGet(Test.java:20)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    你的private Long id;是不是和数据库字段的数据类型不必配
    id一般都是整型的 你看下数据库里是什么类型
      

  2.   

    Hibernate: insert into t_co (name, address) values (?, ?)
    2008-8-6 9:08:16 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet Test threw exception
    java.lang.ClassCastException: java.lang.Long 
    你有一个属性为int了,而返回的是Long1 仔细看看你爹所有属性。2 也许你用到了这个方法额返回值,他返回的是Long,而不是Integer, 这个也有可能。
      

  3.   

    应该就是这个错误,但是我找不到,我是用Hibernate建立的数据库
    项目如下
    http://d.download.csdn.net/down/575182/lhbwuj
      

  4.   

    你用的是什么库,oracle库中是int类,对应的类是Long,页mysql库中的int对应的是Integer类,如果对应Long就会报这个错误,看一下