`
fanyo
  • 浏览: 44426 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

多线程/Hibernate/调用属性时候 间隔发生的诡异问题:debug能看到属性值,但访问属性却nullpointerEx(应用产品问题)

阅读更多

当调用一个命令reset operations 时候启动4个线程 做一些操作.
这个重复命令执行大约运行七八次,assetMove.getAssetType().getType()就会返回一次nullpointerException.

    public TmEquipmentType getAssetType() {
        return (_asset != null) ? _asset.getType() : _containerPlanEquipmentType.getEquipmentType();
    }



TmAssetMoveImpl.hbm.xml
        <many-to-one name="containerPlanEquipmentType"

                    
class="com.redprairie.tm.core.TmContainerPlanEquipmentTypeImpl" >
            <column name="container_plan_equip_id" />
        </many-to-one>



TmContainerPlanEquipmentTypeImpl.hbm.xml
       <many-to-one name="equipmentType"

                    
class="com.redprairie.tm.assets.TmEquipmentTypeImpl">
            <column name="equip_typ" />
       </many-to-one>



我改了下assetMove.getAssetType() 进行debug, assetMove.getAssetType()明明能看到值, 但是调用它的属性的时候就会Nullpointer.


起初运行 五六次命令会出现一次异常,  后来改来将

containerPlanEquipmentType.getEquipmentType()

set和get方法同步一下  运行一百次命令出现一次异常.

 

难道和hibernate的lazy 或者什么其他设置有关?

  • 大小: 81.8 KB
分享到:
评论

相关推荐

    delphi多线程调用dll

    在Delphi编程中,多线程技术被广泛用于提高应用程序的执行效率,特别是在处理大量数据或执行长时间操作时。DLL(动态链接库)是Windows操作系统中的一个重要组件,它允许代码和资源在多个程序之间共享。当需要在多...

    C/C++ 多线程调用嵌入Python

    配合文章代码实现 c++ 多线程调用嵌入的Python 文章详情 https://blog.csdn.net/u010383605/article/details/82057084 Python下载地址: https://www.python.org/downloads/windows/

    hibernate-orm-master.zip

    Hibernate支持多种关联映射,包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)。这些关联可以通过定义外键或使用中间表来实现,使得对象间的复杂关系得以轻松处理。 ...

    多线程调用dll

    在编程领域,多线程是一种常见且重要的技术,它允许程序在同一时间执行多个独立的任务,从而提高系统的效率和响应性。特别是在处理I/O密集型或计算密集型任务时,多线程能充分发挥现代多核处理器的优势。本话题将...

    Java多线程实现异步调用实例

    在Java编程中,多线程和异步调用是提高应用程序性能和响应能力的重要手段。在本实例中,我们将深入探讨如何使用Java实现多线程以实现异步调用,并理解其背后的机制。 首先,多线程允许一个程序同时执行多个任务。在...

    winform多线程计算调用js

    然而,由于Winform应用程序主要是单线程的,直接在UI线程上执行耗时操作会导致界面冻结,因此,我们需要借助多线程来解决这个问题。以下将详细介绍如何在Winform应用中实现多线程调用JavaScript。 首先,了解...

    jni中用多线程调用java代码

    7. **测试和调试**:导入项目到Eclipse,运行并调试,确保所有线程都能正确地调用Java方法,并且没有出现线程安全问题或其他异常。 项目中的`JniThreadTest`可能是一个测试用例,包含了Java类、JNI库以及必要的测试...

    hibernate基础 入门/ hibernate basic

    ### Hibernate基础知识点详解 #### 一、什么是对象关系映射(ORM)以及为什么使用ORM? 在企业级应用开发中,持久层(persistence layer)占据了非常重要的地位。它主要负责处理与数据库之间的交互,包括数据的...

    C#多线程调用Winform窗体[文].pdf

    标题《C#多线程调用Winform窗体》涉及的是C#编程语言中多线程环境下对Winform窗体进行操作的技术点。Winform即Windows窗体应用程序,是C#常用的一种桌面应用程序开发方式。由于GUI窗体通常不是线程安全的,所以在多...

    Hibernate大总结/Hibernate面试题大全

    ### Hibernate核心概念与面试知识点详解 #### 一、持久化概念 **持久化**是软件开发中的基础概念之一,指...此外,对于面试者而言,熟悉这些概念也能帮助他们更好地准备面试,尤其是在面对关于Hibernate的具体问题时。

    VB.NET多线程控件的使用

    VB.NET 多线程控件的使用 BackgroundWorker 组件是 VS2005 和 VS2008 中添加的一个多线程编程控件,该控件使用起来非常方便,然而在开始时由于没有搞清楚它的使用机制,走了不少的弯路。下面是 BackgroundWorker 类...

    浅谈C#跨线程调用窗体控件(比如TextBox)引发的线程安全问题

    C#跨线程调用窗体控件时可能会引发线程安全问题,例如当多个线程操作同一个控件时,该控件可能会进入不一致的状态,出现争用情况和死锁等问题。因此,确保以线程安全方式访问控件非常重要。 在C#中,控件并不是线程...

    嵌入式Linux应用程序开发第9章多线程编程

    "嵌入式Linux应用程序开发第9章多线程编程" 本章主要讲解了 Linux 中的多线程编程,包括 Linux 线程的基本概念、创建及使用、属性设置、同步与互斥问题的处理等内容。通过学习本章,读者将掌握 Linux 中线程的基本...

    C#用了多线程界面卡死

    这往往发生在使用了多线程的情况下,尽管多线程技术可以有效提高程序性能,但如果不正确地使用,反而会导致界面响应性降低。 #### 二、为何需要多线程 通常情况下,负责与用户交互的线程(UI线程)应始终保持流畅。...

    flask开启多线程的具体方法

    虽然多线程能够显著提高 Flask 应用的并发处理能力,但也有一些需要注意的地方: - **资源共享**:多线程环境下需要注意数据共享问题,确保不会出现竞态条件。 - **GIL 限制**:Python 的全局解释器锁 (GIL) 可能会...

    hibernated的线程同步问题

    虽然Hibernate提供了一些并发控制手段,但当涉及到多个线程共享同一个Session时,仍需要开发者进行额外的线程同步措施。在Java中,可以使用synchronized关键字或者Lock接口来控制对Session的访问,确保在同一时刻...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例),可直接运行

    - `volatile`关键字:确保多线程环境下的变量读取始终是最新的值,避免缓存导致的问题。 - `Interlocked`类:提供原子操作,如增加、减小、交换等,避免竞态条件。 5. **异步编程模型**:C#从4.0版本开始引入了...

    在C#中编写多线程应用程序

    ### 在C#中编写多线程应用程序 #### 引言 多线程是现代软件开发中的一个重要概念,尤其是在像C#这样的高级编程语言中。它允许开发者在一个进程中同时执行多个任务,极大地提高了程序的响应性和资源利用率。对于那些...

    C#多线程技术PPT

    C#多线程技术是.NET框架中不可或缺的一部分,它允许开发者创建能够同时执行多个任务的高效应用程序。在本文中,我们将深入探讨C#中的多线程概念、.NET框架对多线程的支持以及如何在实践中应用多线程。 首先,线程是...

Global site tag (gtag.js) - Google Analytics