我知道会话不是线程安全的.我的第一个问题是:将实体传递给另一个线程是安全的,做一些工作,然后将其传回原来的线程并进行更新.
- public class Example1 {
- MyDao dao;
- ...
- public void doWork() {
- MyEntity entity = dao.getEntity();
- Runnable job = new Job(entity);
- Thread t = new Thread(job);
- t.run();
- t.join();
- dao.merge(entity);
- }
- }
我的第二个问题是:在一个线程中新建一个实体并将其保存在另一个线程中是否安全?
- public class Example2 {
- MyDao dao;
- ...
- public void doWork() {
- MyEntity entity = new Entity();
- new Thread(new Job(dao,entity)).run();
- }
- }
- public class Job implements Runnable {
- private MyDao dao;
- private MyEntity entity;
- ...
- @Override
- public void run() {
- dao.save(entity);
- }
- }
编辑我忘记提到这些实体是专门配置为急切加载