I have the following mysql table:
---------------------------------
ID_MARK BIGINT(20) NOT NULL
MARK TINYINT(1) NOT NULL
COMMENT VARCHAR(2048) NOT NULL
ID_PRODUCT INTEGER NOT NULL
And the following java class:
-----------------------------
package model;
import java.io.Serializable;
/**
*
*
*/
public class Mark implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* <p>Represents ...</p>
*
*/
private Short mark;
private long idMark;
private Integer idProduct;
/**
* <p>Represents ...</p>
*
*/
private String comment;
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public Integer getIdProduct() {
return idProduct;
}
public void setIdProduct(Integer idProduct) {
this.idProduct = idProduct;
}
public Short getMark() {
return mark;
}
public void setMark(Short mark) {
this.mark = mark;
}
public long getIdMark() {
return idMark;
}
public void setIdMark(long idMark) {
this.idMark = idMark;
}
}
When I map from the table to the class in the following way:
-----------------------------------------------------------
<?xml version="1.0"?>
<!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 - Hibernate Tools
-->
<hibernate-mapping>
<class name="model.Mark" table="marks" catalog="rateyourproduct">
<id name="idMark" type="long" column="ID_MARK">
<generator class="hilo"/>
</id>
<property name="mark" type="java.lang.Short">
<column name="MARK" not-null="true" />
</property>
<property name="comment" type="java.lang.String">
<column name="COMMENT" length="65535" ></column>
</property>
<many-to-one name="idProduct" class="model.Product">
<column name="ID_PRODUCT"></column>
</many-to-one>
</class>
</hibernate-mapping>
I get the following error:
--------------------------
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /browseResult.jsp:50
47: <font face="arial black" size=5 style="bold">
48: <bean:message key="RYP.buyable"/>
49: </font>
50: <libListQueryResults:viewPositiveAndNegativeMarks/>
51: <br/>
52: <br/>
53:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of model.Mark.setIdProduct
org.hibernate.tuple.PojoEntityTuplizer.setPropertyValuesWithOptimizer(PojoEntityTuplizer.java:215)
org.hibernate.tuple.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:185)
org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3232)
org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:129)
org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
org.hibernate.loader.Loader.doQuery(Loader.java:717)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
org.hibernate.loader.Loader.doList(Loader.java:2145)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
org.hibernate.loader.Loader.list(Loader.java:2024)
org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:111)
org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1655)
org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:164)
model.ProductFinder.getMarksFor(ProductFinder.java:79)
taglib.ViewPositiveAndNegativeMarks.doStartTag(ViewPositiveAndNegativeMarks.java:22)
org.apache.jsp.browseResult_jsp._jspx_meth_libListQueryResults_viewPositiveAndNegativeMarks_0(browseResult_jsp.java:240)
org.apache.jsp.browseResult_jsp._jspService(browseResult_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.
Apache Tomcat/5.5.20