Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate只填充一个表_Java_Database_Hibernate_Pojo - Fatal编程技术网

Java Hibernate只填充一个表

Java Hibernate只填充一个表,java,database,hibernate,pojo,Java,Database,Hibernate,Pojo,在我的项目中,我使用xml(不是注释)将DB映射到类,我已经将两个表映射到一个类,如下所示 <hibernate-mapping> <class name="com.fg.fixtransbridge.model.BookStatistics" entity-name="BookStatistics" table="book_statistics"> </class> <class name="com.fg.fixtr

在我的项目中,我使用xml(不是注释)将DB映射到类,我已经将两个表映射到一个类,如下所示

<hibernate-mapping>
  <class name="com.fg.fixtransbridge.model.BookStatistics"
    entity-name="BookStatistics" table="book_statistics">       
  </class>

  <class name="com.fg.fixtransbridge.model.BookStatistics"
    entity-name="BookStatisticsHistory" table="book_statistics_copy">
  </class>
</hibernate-mapping>  
如果我调用session.saveOrUpdate(“bookstatisticshhistory”,b)1st,那么只有另一个表被填充

    SessionFactory sessionFactory;
    ServiceRegistry serviceRegistry;

    Configuration configuration = new Configuration();
    configuration.configure();
    serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
    sessionFactory = configuration.buildSessionFactory(serviceRegistry);

    Session session = sessionFactory.openSession();

    session.beginTransaction();
    session.saveOrUpdate("BookStatistics", b);
    session.saveOrUpdate("BookStatisticsHistory", b);     
    session.getTransaction().commit();

那么,是否有任何方法可以使用单个服务填充这两个表呢。提前感谢

您可以使用两个会话来完成此操作。像

Session session1 = sessionFactory.openSession();
Session session2 = sessionFactory.openSession();
但我认为这不是很好的做法。无论如何,一个DAO中不需要两个表。这也不是一个好的做法

因此,我为这两个表创建了两个DAO,并执行了CRUD(创建、, 读取、更新、删除)操作并使用一个服务调用 布斯


为了提高效率,我自动连接会话工厂。否则,当它尝试执行任何CRUD操作时,每次都会创建一个新的会话工厂,这会消耗大量的时间和资源

什么是b?一个图书统计或图书统计历史,我想这是图书统计的例子,我很抱歉,是的。这是一个图书统计的例子。历史课上没有书anyway@Koitoer你有什么答案吗??)
Session session1 = sessionFactory.openSession();
Session session2 = sessionFactory.openSession();