Hibernate1,Hibernate2继承了Threed,实现了run()方法,单独运行hibernate1.start();或hibernate2.start();都可以。同时调用就报错。请教高手解决办法 public class TestCopyImgHibernate { public static void main(String[] args) { Hibernate1 hibernate1 = new Hibernate1(); Hibernate2 hibernate2 = new Hibernate2();
hibernate1.start(); hibernate2.start();
} }
下面是Hibernate1 与Hibernate2相同 public class Hibernate1 extends Thread{ public void run() { System.out.println("线程1开始"); Session session1 = null; // 初始化Hibernate // session,注意是在org.hibernate包下面的; Transaction tx1 = null; // 初始化事务 List list = new ArrayList(); // String sql = "select * from image_lob"; String hql = "select document from Person";// 这是HQL写法,DArea就是我们刚才的POJO InputStream is = null; // OutputStream os = null; try { long beginTime = System.currentTimeMillis(); session1 = HibernateSessionFactory.getSession(); // 获得线程安全的session tx1 = session1.beginTransaction(); // 开始事务 Query query = session1.createQuery(hql); // Hibernate提供的查询接口 tx1.commit();
list = query.list(); System.out.println("LIST大小 " + list.size()); for (int i = 0; i < list.size(); i++) { Blob blob = (Blob) list.get(i); is = blob.getBinaryStream(); byte[] b = new byte[1024]; is.read(b); } long endTime = System.currentTimeMillis(); float sumTime = (float) (endTime - beginTime) / 1000; System.out.println("线程1"+sumTime + "秒"); } catch (Exception e) { list = null; e.printStackTrace(); } finally { session1.close(); System.out.println("线程1结束"); }
public class TestCopyImgHibernate throws Exception { public static void main(String[] args) { Hibernate1 hibernate1 = new Hibernate1(); Hibernate2 hibernate2 = new Hibernate2();
线程1开始 log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. main线程 线程2开始 %%%% Error Creating SessionFactory %%%% org.hibernate.MappingException: Could not read mappings from resource: com/aolei/hibernate/Person.hbm.xml at org.hibernate.cfg.Configuration.addResource(Configuration.java:485) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390) at org.hibernate.cfg.Configuration.configure(Configuration.java:1310) at com.aolei.hibernate.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:59) at com.aolei.hibernate.HibernateSessionFactory.getSession(HibernateSessionFactory.java:43) at com.aolei.manythreed.hibernate.Hibernate2.run(Hibernate2.java:26) Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping com.aolei.hibernate.Person at org.hibernate.cfg.Mappings.addClass(Mappings.java:118) at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:154) at org.hibernate.cfg.Configuration.add(Configuration.java:386) at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:427) at org.hibernate.cfg.Configuration.addResource(Configuration.java:482) ... 8 more java.lang.NullPointerException at com.aolei.manythreed.hibernate.Hibernate2.run(Hibernate2.java:27) Exception in thread "Thread-1" java.lang.NullPointerException at com.aolei.manythreed.hibernate.Hibernate2.run(Hibernate2.java:71)