另起线程传参问题

本文讲述了在JPA框架下遇到的数据懒加载问题,通过Thread和Runnable解决无法在子线程中立即获取实体属性的挑战,以及尝试使用AlibabaJSON转换时遇到的问题。最后介绍了使用自定义线程类传递完整数据的解决方案。
摘要由CSDN通过智能技术生成

业务需求在不影响正常功能的情况下完成其他的任务操作

注:以下问题全部发生在JPA框架无法实现数据加载产生(数据懒加载问题)

1. 通过Thread实现runnable方法(这种方式传参直接传参)

Student student=new Student ();
student.setName("张三");
Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
				student.getName();//此处获取不到NAME值 需要通过静态类
             }
        });
        // 启动线程
thread.start();

1)静态类:

 static class MutableEntity {
        private String name;
}

2)在外部赋值

MutableEntity m=new MutableEntity();
m.setName(student.getName());

3)传参

Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
				m.getName();//这样就可以获取到
             }
        });
        // 启动线程
thread.start();

4)如果类的属性较多也可使用JSON转换方法

JSON.toJSONString(数据库返回值);

JSON.parseObject(entity.getDataJsonString(), new TypeReference<类名>() {}

综上:Alibaba的JSON转换竟然出了问题

不能将实体类转换回来
alibaba转换异常

2.以上不能取得想要的结果 故更改线程调用方式

    public class MyThread extends Thread {
        private Student student;

		//通过Thread实现方法传参 可以传完整的数据
        public MyThread(Student student) {
            this.student= student;
        }

        @Override
        public void run() {
        }
   }

1)线程调用:

 MyThread myaThread = new MyThread(student);//上边的实体类
 myaThread.run();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值