堆栈追踪:
ERROR http-8081-5 org.hibernate.property.BasicPropertyAccessor - IllegalArgumentException in class: org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData, setter method of property: assessmentBaseId
ERROR http-8081-5 org.hibernate.property.BasicPropertyAccessor - expected type: java.lang.Long, actual value: java.lang.Long
AssessmentBase.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="false">
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData"
table="SAM_ASSESSMENTBASE_T">
<id name="assessmentBaseId" column="ID" type="java.lang.Long" unsaved-value="0">
<generator class="native">
<param name="sequence">SAM_ASSESSMENTBASE_ID_S</param>
</generator>
</id>
<discriminator column="isTemplate" />
<property name="parentId" type="long" column="PARENTID" not-null="false" />
<property name="title" type="string" length="255" column="TITLE" not-null="false" />
<property name="description" type="string" length="4000" column="DESCRIPTION" not-null="false" />
<property name="comments" type="string" length="4000" column="COMMENTS" not-null="false" />
<property name="typeId" type="long" column="TYPEID" not-null="false" />
<property name="instructorNotification" type="integer" column="INSTRUCTORNOTIFICATION" not-null="false" />
<property name="testeeNotification" type="integer" column="TESTEENOTIFICATION" not-null="false" />
<property name="multipartAllowed" type="integer" column="MULTIPARTALLOWED" not-null="false" />
<property name="status" type="integer" column="STATUS" not-null="true" />
<property name="createdBy" type="string" length="255" column="CREATEDBY" not-null="true" />
<property name="createdDate" type="timestamp" column="CREATEDDATE" not-null="true" />
<property name="lastModifiedBy" type="string" length="255" column="LASTMODIFIEDBY" not-null="true" />
<property name="lastModifiedDate" type="timestamp" column="LASTMODIFIEDDATE" not-null="true" />
<one-to-one name="assessmentAccessControl"
class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentAccessControl"
cascade="all" />
<one-to-one name="evaluationModel"
class="org.sakaiproject.tool.assessment.data.dao.assessment.EvaluationModel"
cascade="all" />
<one-to-one name="assessmentFeedback"
class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentFeedback"
cascade="all" />
<set name="assessmentMetaDataSet" table="SAM_ASSESSMETADATA_T" cascade="all"
inverse="true">
<key column="ASSESSMENTID"/>
<one-to-many class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentMetaData"/>
</set>
<set name="securedIPAddressSet" table="SAM_SECUREDIP_T" cascade="all"
inverse="true">
<key column="ASSESSMENTID"/>
<one-to-many class="org.sakaiproject.tool.assessment.data.dao.assessment.SecuredIPAddress"/>
</set>
<subclass name="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentData"
discriminator-value="0">
<property name="assessmentTemplateId" column="ASSESSMENTTEMPLATEID" />
<set name="sectionSet" table="SAM_SECTION_T" cascade="all" order-by="sequence asc"
inverse="true" lazy="true">
<key column="ASSESSMENTID"/>
<one-to-many class="org.sakaiproject.tool.assessment.data.dao.assessment.SectionData"/>
</set>
<set name="assessmentAttachmentSet" table="SAM_ATTACHMENT_T" cascade="all" order-by="createdDate asc"
inverse="true" lazy="false">
<key column="ASSESSMENTID"/>
<one-to-many class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentAttachment"/>
</set>
</subclass>
<subclass name="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentTemplateData"
discriminator-value="1" lazy="false" />
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentAccessControl"
table="SAM_ASSESSACCESSCONTROL_T">
<id name="id" column="ASSESSMENTID">
<generator class="foreign">
<param name="property">assessmentBase</param>
</generator>
</id>
<one-to-one name="assessmentBase"
class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData"
constrained="true" cascade="all" />
<property name="submissionsAllowed" type="integer" column="SUBMISSIONSALLOWED" not-null="false" />
<property name="unlimitedSubmissions" type="boolean" column="UNLIMITEDSUBMISSIONS" not-null="false" />
<property name="submissionsSaved" type="integer" column="SUBMISSIONSSAVED" not-null="false" />
<property name="assessmentFormat" type="integer" column="ASSESSMENTFORMAT" not-null="false" />
<property name="bookMarkingItem" type="integer" column="BOOKMARKINGITEM" not-null="false" />
<property name="timeLimit" type="integer" column="TIMELIMIT" not-null="false" />
<property name="timedAssessment" type="integer" column="TIMEDASSESSMENT" not-null="false" />
<property name="retryAllowed" type="integer" column="RETRYALLOWED" not-null="false" />
<property name="lateHandling" type="integer" column="LATEHANDLING" not-null="false" />
<property name="startDate" type="timestamp" column="STARTDATE" not-null="false" />
<property name="dueDate" type="timestamp" column="DUEDATE" not-null="false" />
<property name="scoreDate" type="timestamp" column="SCOREDATE" not-null="false" />
<property name="feedbackDate" type="timestamp" column="FEEDBACKDATE" not-null="false" />
<property name="retractDate" type="timestamp" column="RETRACTDATE" not-null="false" />
<property name="autoSubmit" type="integer" column="AUTOSUBMIT" not-null="false" />
<property name="itemNavigation" type="integer" column="ITEMNAVIGATION" not-null="false" />
<property name="itemNumbering" type="integer" column="ITEMNUMBERING" not-null="false" />
<property name="submissionMessage" type="string" length="4000" column="SUBMISSIONMESSAGE" not-null="false" />
<property name="releaseTo" type="string" length="255" column="RELEASETO" not-null="false" />
<property name="username" type="string" length="255" column="USERNAME" not-null="false" />
<property name="password" type="string" length="255" column="PASSWORD" not-null="false" />
<property name="finalPageUrl" type="string" length="1023" column="FINALPAGEURL" not-null="false" />
<property name="markForReview" type="integer" column="MARKFORREVIEW" not-null="false" />
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.EvaluationModel"
table="SAM_ASSESSEVALUATION_T">
<id name="id" column="ASSESSMENTID">
<generator class="foreign">
<param name="property">assessmentBase</param>
</generator>
</id>
<one-to-one name="assessmentBase"
class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData"
constrained="true" cascade="all" />
<property name="evaluationComponents" type="string" length="255" column="EVALUATIONCOMPONENTS" not-null="false" />
<property name="scoringType" type="integer" column="SCORINGTYPE" not-null="false" />
<property name="numericModelId" type="string" length="255" column="NUMERICMODELID" not-null="false" />
<property name="fixedTotalScore" type="integer" column="FIXEDTOTALSCORE" not-null="false" />
<property name="gradeAvailable" type="integer" column="GRADEAVAILABLE" not-null="false" />
<property name="isStudentIdPublic" type="integer" column="ISSTUDENTIDPUBLIC" not-null="false" />
<property name="anonymousGrading" type="integer" column="ANONYMOUSGRADING" not-null="false" />
<property name="autoScoring" type="integer" column="AUTOSCORING" not-null="false" />
<property name="toGradeBook" type="string" length="255" column="TOGRADEBOOK" not-null="false" />
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentMetaData"
table="SAM_ASSESSMETADATA_T">
<id name="id" column="ASSESSMENTMETADATAID" type="java.lang.Long" unsaved-value="0">
<generator class="native">
<param name="sequence">SAM_ASSESSMETADATA_ID_S</param>
</generator>
</id>
<many-to-one name="assessment" class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData"
column="ASSESSMENTID" not-null="true" />
<property name="label" type="string" length="255" column="LABEL" not-null="true" />
<property name="entry" type="string" length="255" column="ENTRY" not-null="false" />
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentFeedback"
table="SAM_ASSESSFEEDBACK_T">
<id name="id" column="ASSESSMENTID">
<generator class="foreign">
<param name="property">assessmentBase</param>
</generator>
</id>
<one-to-one name="assessmentBase"
class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData"
constrained="true" cascade="all" />
<property name="feedbackDelivery" type="integer" column="FEEDBACKDELIVERY" not-null="false" />
<property name="feedbackAuthoring" type="integer" column="FEEDBACKAUTHORING" not-null="false" />
<property name="editComponents" type="integer" column="EDITCOMPONENTS" not-null="false" />
<property name="showQuestionText" type="boolean" column="SHOWQUESTIONTEXT" not-null="false" />
<property name="showStudentResponse" type="boolean" column="SHOWSTUDENTRESPONSE" not-null="false" />
<property name="showCorrectResponse" type="boolean" column="SHOWCORRECTRESPONSE" not-null="false" />
<property name="showStudentScore" type="boolean" column="SHOWSTUDENTSCORE" not-null="false" />
<property name="showStudentQuestionScore" type="boolean" column="SHOWSTUDENTQUESTIONSCORE" not-null="false" />
<property name="showQuestionLevelFeedback" type="boolean" column="SHOWQUESTIONLEVELFEEDBACK" not-null="false" />
<property name="showSelectionLevelFeedback" type="boolean" column="SHOWSELECTIONLEVELFEEDBACK" not-null="false" />
<property name="showGraderComments" type="boolean" column="SHOWGRADERCOMMENTS" not-null="false" />
<property name="showStatistics" type="boolean" column="SHOWSTATISTICS" not-null="false" />
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.SectionData" table="SAM_SECTION_T">
<id name="sectionId" column="SECTIONID" type="java.lang.Long" unsaved-value="0">
<generator class="native">
<param name="sequence">SAM_SECTION_ID_S</param>
</generator>
</id>
<many-to-one name="assessment"
class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentData"
column="ASSESSMENTID" not-null="true" />
<property name="duration" type="integer" column="DURATION" not-null="false" />
<property name="sequence" type="integer" column="SEQUENCE" not-null="false" />
<property name="title" type="string" length="255" column="TITLE" not-null="false" />
<property name="description" type="string" length="4000" column="DESCRIPTION" not-null="false" />
<property name="typeId" type="long" column="TYPEID" not-null="false" />
<property name="status" type="integer" column="STATUS" not-null="true" />
<property name="createdBy" type="string" length="255" column="CREATEDBY" not-null="true" />
<property name="createdDate" type="timestamp" column="CREATEDDATE" not-null="true" />
<property name="lastModifiedBy" type="string" length="255" column="LASTMODIFIEDBY" not-null="true" />
<property name="lastModifiedDate" type="timestamp" column="LASTMODIFIEDDATE" not-null="true" />
<set name="itemSet" table="SAM_ITEM_T" cascade="all" order-by="sequence asc"
inverse="true" lazy="false">
<key column="SECTIONID"/>
<one-to-many class="org.sakaiproject.tool.assessment.data.dao.assessment.ItemData"/>
</set>
<set name="sectionMetaDataSet" table="SAM_SECTIONMETADATA_T" cascade="all"
inverse="true">
<key column="SECTIONID"/>
<one-to-many class="org.sakaiproject.tool.assessment.data.dao.assessment.SectionMetaData"/>
</set>
<set name="sectionAttachmentSet" table="SAM_ATTACHMENT_T" cascade="all" order-by="createdDate asc"
inverse="true" lazy="false">
<key column="SECTIONID"/>
<one-to-many class="org.sakaiproject.tool.assessment.data.dao.assessment.SectionAttachment"/>
</set>
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.SectionMetaData"
table="SAM_SECTIONMETADATA_T">
<id name="id" column="SECTIONMETADATAID" type="java.lang.Long" unsaved-value="0">
<generator class="native">
<param name="sequence">SAM_SECTIONMETADATA_ID_S</param>
</generator>
</id>
<many-to-one name="section" class="org.sakaiproject.tool.assessment.data.dao.assessment.SectionData"
column="SECTIONID" not-null="true" />
<property name="label" type="string" length="255" column="LABEL" not-null="true" />
<property name="entry" type="string" length="255" column="ENTRY" not-null="false" />
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.SecuredIPAddress"
table="SAM_SECUREDIP_T">
<id name="id" column="IPADDRESSID" type="java.lang.Long" unsaved-value="0">
<generator class="native">
<param name="sequence">SAM_SECUREDIP_ID_S</param>
</generator>
</id>
<many-to-one name="assessment"
class="org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData"
column="ASSESSMENTID" not-null="true" />
<property name="hostname" type="string" length="255" column="HOSTNAME" not-null="false" />
<property name="ipAddress" type="string" length="255" column="IPADDRESS" not-null="false" />
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.AssesmentSummary" table="sam_assessmentgrading_summary">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native">
<param name="sequence">SAM_GRADING_SEQ</param>
</generator>
</id>
<property name="agentId" column="USER_ID" type="java.lang.String"></property>
<property name="assesmentId" column="PUBLISHEDASSESSMENTID" type="java.lang.String"></property>
<property name="score" column="FINAL_SCORE" type="java.lang.Double"></property>
<property name="percentage" column="PERCENTAGE" type="java.lang.String"></property>
<property name="timeSpent" column="TIMEELAPSED" type="java.lang.Long"></property>
<property name="attemptedDate" column="ATTEMPTED_DATE" type="java.util.Date"></property>
<property name="submittedDate" column="SUBMISSION_DATE" type="java.util.Date"></property>
<property name="sectionId" column="SECTION_ID" type="java.lang.Integer"></property>
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.Lessons"
table="MELETE_LESSON_UNIQUE">
<id name="id" column="id" type="java.lang.Integer">
<generator class="native">
<param name="sequence">LESSON_UNIQUE_SQE</param>
</generator>
</id>
<property name="siteId" column="COURSEID" type="java.lang.String"></property>
<property name="moduleId" column="MODULEID" type="java.lang.Integer"></property>
<property name="sectionId" column="LESSONID" type="java.lang.Integer"></property>
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.MeleteModule" table="MELETE_MODULE">
<id name="module_Id" column="MODULE_ID" type="java.lang.Integer">
<generator class="native">
<param name="sequence">MELETE_MODULE_SEQ</param>
</generator>
</id>
<one-to-one name="meletecoursemodule"
class="org.sakaiproject.tool.assessment.data.dao.assessment.Melete_Course_Module"
constrained="true" cascade="all" />
<property name="version" column="VERSION" type="java.lang.Integer"></property>
<property name="title" column="TITLE" type="java.lang.String"></property>
<property name="learnObj" column="LEARN_OBJ" type="java.sql.Clob"></property>
<property name="description" column="DESCRIPTION" type="java.sql.Clob"></property>
<property name="keywords" column="KEYWORDS" type="java.lang.String"></property>
<property name="created_by_Fname" column="CREATED_BY_FNAME" type="java.lang.String"></property>
<property name="created_by_Lname" column="CREATED_BY_LNAME" type="java.lang.String"></property>
<property name="userId" column="USER_ID" type="java.lang.String"></property>
<property name="modified_by_Fname" column="MODIFIED_BY_FNAME" type="java.lang.String"></property>
<property name="modified_by_Lname" column="MODIFIED_BY_LNAME" type="java.lang.String"></property>
<property name="institute" column="INSTITUTE" type="java.lang.String"></property>
<property name="whats_Next" column="WHATS_NEXT" type="java.sql.Clob"></property>
<property name="creation_Date" column="CREATION_DATE" type="java.util.Date"></property>
<property name="modification_Date" column="MODIFICATION_DATE" type="java.util.Date"></property>
<property name="seq_Xml" column="SEQ_XML" type="java.sql.Clob"></property>
<property name="courseName" column="COURSENAME" type="java.lang.String"></property>
<property name="courseId" column="COURSEID" type="java.lang.String"></property>
<property name="name" column="NAME" type="java.lang.String"></property>
<property name="lessons" column="LESSONS" type="java.lang.String"></property>
<property name="credits" column="CREDITS" type="java.lang.String"></property>
<property name="content" column="CONTENT" type="java.lang.String"></property>
<property name="rt_Dt" column="RT_DT" type="java.util.Date"></property>
<property name="maxt" column="MAXT" type="java.util.Date"></property>
<property name="course_Level" column="COURSE_LEVEL" type="java.lang.String"></property>
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.Melete_Course_Module" table="MELETE_COURSE_MODULE">
<id name="module_Id" column="MODULE_ID" type="integer">
<generator class="native">
<param name="sequence">MELETE_COURSE_MODULE_SEQ</param>
</generator>
</id>
<one-to-one name="meletemodule"
class="org.sakaiproject.tool.assessment.data.dao.assessment.MeleteModule"
constrained="true" cascade="all" />
<property name="courseId" column="COURSE_ID" type="string"></property>
<property name="seq_No" column="SEQ_NO" type="integer"></property>
<property name="archv_Flag" column="ARCHV_FLAG" type="boolean"></property>
<property name="date_Archived" column="DATE_ARCHIVED" type="timestamp"></property>
<property name="delete_flag" column="DELETE_FLAG" type="boolean"></property>
</class>
<class name="org.sakaiproject.tool.assessment.data.dao.assessment.Melete_Module_Shdates" table="MELETE_MODULE_SHDATES">
<id name="module_Id" column="MODULE_ID" type="integer">
<generator class="native">
<param name="sequence">MELETE_MODULE_SHDATES_SEQ</param>
</generator>
</id>
<property name="version" column="VERSION" type="integer"></property>
<property name="end_Date" column="END_DATE" type="timestamp"></property>
<property name="start_Date" column="START_DATE" type="timestamp"></property>
</class>
</hibernate-mapping>
AssessmentBaseData.java
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import org.sakaiproject.tool.assessment.data.dao.shared.TypeD;
import org.sakaiproject.tool.assessment.data.ifc.assessment.AssessmentAccessControlIfc;
import org.sakaiproject.tool.assessment.data.ifc.assessment.AssessmentFeedbackIfc;
import org.sakaiproject.tool.assessment.data.ifc.assessment.EvaluationModelIfc;
import org.sakaiproject.tool.assessment.data.ifc.shared.TypeIfc;
public class AssessmentBaseData
implements java.io.Serializable,AssessmentBaseIfc
{
private Long assessmentBaseId;
private Boolean isTemplate;
private Long parentId;
private String title;
private String description;
private String comments;
private Long typeId;
private Integer instructorNotification;
private Integer testeeNotification;
private Integer multipartAllowed;
private Integer status;
private String createdBy;
private Date createdDate;
private String lastModifiedBy;
private Date lastModifiedDate;
private AssessmentAccessControlIfc assessmentAccessControl;
private EvaluationModelIfc evaluationModel;
private AssessmentFeedbackIfc assessmentFeedback;
private Set assessmentMetaDataSet;
private HashMap assessmentMetaDataMap = new HashMap();
private HashMap assessmentFeedbackMap = new HashMap();
private Set securedIPAddressSet;
public AssessmentBaseData() {}
public AssessmentBaseData(Long assessmentBaseId, String title){
this.assessmentBaseId = assessmentBaseId;
this.title = title;
}
public AssessmentBaseData(Long assessmentBaseId, String title,Date lastModifiedDate){
this.assessmentBaseId = assessmentBaseId;
this.title = title;
this.lastModifiedDate = lastModifiedDate;
}
public AssessmentBaseData(Long assessmentBaseId, String title,Date lastModifiedDate, String lastModifiedBy){
this.assessmentBaseId = assessmentBaseId;
this.title = title;
this.lastModifiedDate = lastModifiedDate;
this.lastModifiedBy = lastModifiedBy;
}
public AssessmentBaseData(Long assessmentBaseId, String title,Date lastModifiedDate, Long typeId){
this.assessmentBaseId = assessmentBaseId;
this.title = title;
this.lastModifiedDate = lastModifiedDate;
this.typeId = typeId;
}
public AssessmentBaseData(Boolean isTemplate, Long parentId,
String title, String description, String comments,
Long typeId,
Integer instructorNotification, Integer testeeNotification,
Integer multipartAllowed, Integer status, String createdBy,
Date createdDate, String lastModifiedBy,
Date lastModifiedDate) {
this.isTemplate = isTemplate;
this.parentId = parentId;
this.title = title;
this.description = description;
this.comments = comments;
this.typeId = typeId;
this.instructorNotification = instructorNotification;
this.testeeNotification = testeeNotification;
this.multipartAllowed = multipartAllowed;
this.status = status;
this.createdBy = createdBy;
this.createdDate = createdDate;
this.lastModifiedBy = lastModifiedBy;
this.lastModifiedDate = lastModifiedDate;
}
public Long getAssessmentBaseId() {
return this.assessmentBaseId;
}
public void setAssessmentBaseId(Long assessmentBaseId) {
this.assessmentBaseId = assessmentBaseId;
}
public Boolean getIsTemplate() {
return this.isTemplate;
}
public void setIsTemplate(Boolean isTemplate) {
this.isTemplate = isTemplate;
}
public Long getParentId() {
return this.parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
public String getComments() {
return this.comments;
}
public void setComments(String comments) {
this.comments = comments;
}
public Integer getInstructorNotification() {
return this.instructorNotification;
}
public void setInstructorNotification(Integer instructorNotification) {
this.instructorNotification = instructorNotification;
}
public Integer getTesteeNotification() {
return this.testeeNotification;
}
public void setTesteeNotification(Integer testeeNotification) {
this.testeeNotification = testeeNotification;
}
public Integer getMultipartAllowed() {
return this.multipartAllowed;
}
public void setMultipartAllowed(Integer multipartAllowed) {
this.multipartAllowed = multipartAllowed;
}
public Long getTypeId() {
return this.typeId;
}
public void setTypeId(Long typeId) {
this.typeId = typeId;
}
public Integer getStatus() {
return this.status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getCreatedBy() {
return this.createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getCreatedDate() {
return this.createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
}
在这个循环中,当我试图在Session中保存对象时产生异常
List pendingAssessList=service.getpendingassessmentData(pendingassessIds,syncDate,siteid);
for(int i=0;i<pendingAssessList.size();i++)
{
AssessmentData ad=(AssessmentData)pendingAssessList.get(i);
AssessmentData new_a = afq.prepareAssessment(ad, ServerConfigurationService.getServerUrl());
openSession.save(new_a);
}
assessmentdata
public class AssessmentData extends org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData
implements java.io.Serializable, AssessmentIfc
{
}