JPA + hibernate + spring,同一个DB中有2个独立的表

时间:2015-01-07 00:29:53

标签: spring hibernate jpa datasource persistence-unit

我试图编写一个单页应用程序,它将当前用户持久存储到数据库表(HSQL)中,并将一个"故事列表#34;(仅1个内容)保存到一个单独的表中(在同一个数据库中)

我有2个POJO,用户和故事。然后2 dtos,2个存储库等,但我正在努力弄清楚如何将这些存储到2个表...

基本上我需要知道我是否需要2个持久性单元和2个entityManagerFactory,即使我希望写入单个数据库,但要写入2个表...就像环顾四周一样但部分问题是我对一些术语感到困惑。

关于多个表有很多问题,但它们似乎总是在不同的数据源中。在这种情况下,数据源只是表格吗?即坚持使用相同的数据库但不同的表(也称为数据源) 如果没有,是"数据源"和"数据库"在这种情况下可以互换吗?

感谢。

1 个答案:

答案 0 :(得分:0)

Datasource是任意数据集合的抽象。在常规情况下,您的架构可能是您的数据源。数据源粒度完全取决于您,但我想更粗粒度的数据源有更好的设计。 因此,您需要一个persistence unit和一个EntityManagerFactory。 在一个简单的场景中,您可以像这样定义您的bean:

<bean id="datasource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource"
          p:url="datasource url"
          p:username="your uname"
          p:password="your pass"
          p:driverClassName="dirver name"/>

    <bean id="persistenceProvider"
          class="org.hibernate.jpa.HibernatePersistenceProvider"/>

    <bean id="entityManagerFactory"
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
          p:packagesToScan="your model packages"
          p:dataSource-ref="datasource"
          p:persistenceProvider-ref="persistenceProvider" />