当前位置: 首页 > 知识库问答 >
问题:

在会话中保存对象时会在类XXXX中引发illegalArgumentException

宓文斌
2023-03-14

我正在尝试将会话中的对象保存为session.save(object),但它引发了非法参数异常,同时也引发了预期的类型:java.lang.Long,实际值:java.lang.Long

在什么情况下会引发这些类型的异常?请帮帮我,我找了很多,但还是找不到解决办法

2013-11-26 14:51:59,646 ERROR http-8081-4 org.hibernate.property.BasicPropertyAccessor - IllegalArgumentException in class: org.sakaiproject.tool.assessment.data.dao.assessment.AssessmentBaseData, setter method of property: assessmentBaseId
2013-11-26 14:51:59,661 ERROR http-8081-4 org.hibernate.property.BasicPropertyAccessor - expected type: java.lang.Long, actual value: java.lang.Long
public class AssessmentBaseData
    implements java.io.Serializable,
               org.sakaiproject.tool.assessment.data.ifc.assessment.AssessmentBaseIfc
{

 private Long assessmentBaseId;
 private String title;

public AssessmentBaseData(Long assessmentBaseId, String title){
    this.assessmentBaseId = assessmentBaseId;
    this.title = title;

}

public String getTitle() {
    return this.title;
  }

  public void setTitle(String title) {
    this.title = title;
  }

public Long getAssessmentBaseId() {
    return this.assessmentBaseId;
  }

  public void setAssessmentBaseId(Long assessmentBaseId) {


    this.assessmentBaseId = assessmentBaseId;
  }
  }
}

hbm文件的一部分

<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>

我使用的是Oracle 10g数据库、Tomcat 6应用服务器、hibernate 3.0版本

共有1个答案

慕宏博
2023-03-14

您应该为您的AssessmentBaseData.Class提供一个默认构造函数

public AssessmentBaseData(){}
 类似资料:
  • 问题内容: 我想知道是否有可能直接在Flask会话中存储对象,而无需重写序列化程序。为了使此功能正常工作,我需要在课堂上实现任何功能吗?下面的示例代码。这就是我想要的样子。但是,当您尝试执行该操作时,它会抛出错误信息TypeError: Object of type ‘Test’ is not JSON serializable 任何帮助是极大的赞赏!提前致谢!:) 问题答案: 使对象序列化并实现

  • 问题内容: 我想用Spring来实现一个购物车,所以我需要在会话中保存一个对象(该对象具有product,paymentType和deliveryType之类的属性)。我尝试使用bean并将属性“ scope”设置为“ session”来创建它,但是它不起作用,我应该在控制器或类中使用一些其他注释吗?任何示例用法都将非常有帮助:-)预先感谢。 问题答案: 然后 如果它在Web上下文(dispatc

  • 问题内容: 我需要编写一个Python脚本,该脚本向同一站点发出多个HTTP请求。除非我错了(而且我很可能会这样),否则urllib会为每个请求重新进行身份验证。出于某种原因,我将不进行讨论,我需要能够进行一次身份验证,然后将该会话用于其余的请求。 我正在使用python 2.3.4 问题答案: 如果要保留身份验证,则需要重用cookie。我不确定urllib2在python 2.3.4中是否可用

  • 问题内容: 我正在尝试使用hibernate模式写入多个数据库。我已经将写和读/写会话封装在单个会话对象中。但是,当我去保存时,出现很多错误,这些对象已与另一个会话关联:“非法尝试将一个集合与两个打开的会话关联” 这是我的代码: 我试图逐出该物体并冲洗;但是,这会导致“行被另一个事务更新或删除”问题,即使两个会话都指向不同的数据库。 除了上述内容,我还尝试使用hibernate的复制功能。没有错误

  • 问题内容: 我正在使用Node.js,Express和Redis构建一个用于会话管理的网站。无论出于何种原因,如果我有一个会话变量(在此示例中),并且刷新页面,则不会保存该变量,但是,如果我在设置了变量后调用,则确实会将其保存到Redis(redis- cli监视器显示此内容-不调用表示变量不存在,而调用则显示该变量)。 我正在使用它来设置和启动服务器: 然后,在那条路线中,我有: 由此,我应该能

  • 问题内容: 我在开发中使用带有护照的节点/表达式。我碰到一篇文章说: Express加载会话数据并将其附加到请求。当护照在会话中存储序列化的用户时,可以在req.session.passport.user中找到序列化的用户对象。 但是令我惊讶的是,浏览器cookie中的sessionID存储的值在登录前后都保持不变。那么,序列化的用户对象存储在哪里? 我以为它最初存储在用户cookie中,但似乎不