`
星夜的遐想
  • 浏览: 189539 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java.lang.NullPointerException at org.hibernate.type.LongType.next(LongType.java

阅读更多

1、为了初步解决并发造成的问题,我们通常会在实体类上声明一个版本管理字段,并且引入的@version注解,这就就简单实现了乐观锁功能;

 

	@Version
	private Long	version;

 

2、在操作表单提交时,hibernate会根据操作类型进行(如果是新增,默认会生成一个版本为0的版本号,

后面每次修改都会在现有版本后的基础上加1)对版本号进行维护。

 

应用场景:

如果两个人(甲,乙)同时对同实体进行修改,甲先提交,乙后提交,那么乙提交是会报错的。(因为甲已修改,乙提交的版本号比数据库中的版本号低,因此不能进行更新)。

 

注意事项:

运用版本控制字段需要注意,在修改时要将版本号一起提交,否则hibernate因为维护版本号时因无法参考当前版本而抛出空指针异常。

 

hibernate异常抛出位置:

 

org.hibernate.type.LongType
@SuppressWarnings({ "UnnecessaryBoxing", "UnnecessaryUnboxing" })
	public Long next(Long current, SessionImplementor session) {
		return Long.valueOf( current.longValue() + 1 );
	}

 

 

异常信息:

 

严重: Servlet.service() for servlet springmvc threw exception

java.lang.NullPointerException

at org.hibernate.type.LongType.next(LongType.java:76)

at org.hibernate.type.LongType.next(LongType.java:40)

at org.hibernate.engine.Versioning.increment(Versioning.java:131)

at org.hibernate.event.def.DefaultFlushEntityEventListener.getNextVersion(DefaultFlushEntityEventListener.java:406)

at org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:296)

at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:155)

at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)

at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)

at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)

 

解决方案:

    在页面的隐藏域中放入版本号字段,随表单提交时一起提交。

 <form:hidden path="version"/>

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    java.lang.NullPointerException

    Java.lang.NullPointerException 解决方案与原因分析 Java.lang.NullPointerException 是 Java 语言中一种常见的异常,它发生在 Java 应用程序尝试使用 null 对象引用时。这种异常通常是由于程序员错误地认为对象...

    java.lang.NullPointerException的解决方法

    ### Java.lang.NullPointerException 解决方法详解 在Java开发过程中,`java.lang.NullPointerException`(简称NPE)是一种常见的运行时异常。它发生在试图对空对象执行操作时,例如调用对象的方法或访问其属性等。...

    java.lang.NullPointerException的可能原因及处理.docx

    Java.lang.NullPointerException 的可能原因及处理 Java.lang.NullPointerException 是 Java 语言中最常见的异常之一,它的出现通常是由于编程不当或对象未被正确初始化所致。在本文中,我们将探讨 Java.lang....

    An internal error occurred during: java.lang.NullPointerException

    这个错误通常伴随着`java.lang.NullPointerException`异常,导致在启动Tomcat服务器时不断弹出错误对话框。这种情况下,尽管后台没有明显的错误日志,但频繁出现的警告窗口无疑会给开发工作带来不便。 ### 错误分析...

    java 空指针异常(NullPointerException)

    `NullPointerException` 是Java标准库中`java.lang`包下的一个运行时异常。当程序试图通过一个为null的引用调用方法或者访问其字段时,系统会抛出此异常。在Java中,null不是一个对象,而是表示没有对象的引用状态。...

    apple越狱备份数据

    at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at com.semaphore.jna.LibraryFinder.loadPath(LibraryFinder.java:64) at com.semaphore.jna.LibraryFinder.&lt;clinit&gt;...

    Sqoop通过Phoenix导hbase数据到hive

    出现此问题时使用:java.lang.NullPointerException at org.json.JSONObject.(JSONObject.java:144) at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43) at org.apache.sqoop....

    CRASH问题:java.lang.NullPointerException

    java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.ImageView.setImageResource(int)’ on a null object reference 今天在家练习ListView的时候,遇到一个java.lang....

    java.lang.NullPointerException出现的几种原因及解决方案

    java.lang.NullPointerException出现的几种原因及解决方案 java.lang.NullPointerException是Java中最常见的异常之一,它经常出现在日常编程中。了解java.lang.NullPointerException的原因和解决方案对于Java开发者...

    绝望,上传文件失败。。遇到并解决java.lang.NullPointerException

    解决报错:java.lang.NullPointerException 解决方法:将文件的编码方式改为utf-8即可! 截图: 修改成功后:   代码: import os import json import re def json_to_html(i,cvenum): print('正在处理:'+...

    Myeclipse安装aptana插件后报java.lang.NullPointerException解决方案

    ### Myeclipse安装Aptana插件后报java.lang.NullPointerException解决方案 #### 问题背景 在使用Myeclipse的过程中,不少用户遇到了一个较为常见的问题:安装Aptana插件之后,每次启动Myeclipse时都会出现`java....

    java.lang包

    Java语言的核心库之一就是`java.lang`包,它是最基础且最重要的包,包含了所有Java程序都会用到的一些基本类。这个包中包含了如异常处理、基本数据类型的包装类、数学运算、类和对象操作等核心功能。 异常处理是...

    Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException

    在上述问题中,开发者遇到了一个特定的错误:“javax.xml.transform.TransformerException: java.lang.NullPointerException”。这个错误通常表明在尝试执行XML转换时,某个对象没有被正确地初始化或者为null。我们...

    在Java中异常分析

    - **异常路径**:`java.lang.Object -&gt; java.lang.Throwable -&gt; java.lang.Exception -&gt; java.lang.RuntimeException -&gt; java.lang.NullPointerException` - **解释**:当应用程序尝试使用未初始化的对象引用调用...

    FtpUtil.java

    FtpUtil.java 包

    org.apache.commons.lang3.StringUtils.jar.rar

    Apache Commons Lang 是一个由 Apache 软件基金会开发的 Java 类库,它提供了一系列实用工具类,用于增强 JDK 内置的 String 类的功能。在给定的标题 "org.apache.commons.lang3.StringUtils.jar.rar" 中,我们可以...

    Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法

    在Java XML处理中,如果遇到 `javax.xml.transform.TransformerException: java.lang.NullPointerException`,则可能是由于XML处理库在执行转换过程中遇到了 null 引用。解决方法可能包括检查输入数据的完整性、配置...

    java-json.7z

    java.lang.NullPointerException,没遇到可以跳过 19/09/20 09:57:47 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException at org.json.JSONObject.(JSONObject.java:144) ## 缺少...

    Exception in thread "main" java.lang.NullPointerException

    希望高手指点

    解析Java中所有错误和异常的父类java.lang.Throwable

    在Java编程语言中,`java.lang.Throwable` 是所有错误(Error)和异常(Exception)的顶级父类,它是异常处理机制的基础。`Throwable` 类提供了封装异常信息的方法和属性,使得开发者能够对程序中出现的问题进行捕获...

Global site tag (gtag.js) - Google Analytics