我希望有两个EntityManagerFactories(在这种情况下为org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean
),每个都有自己的数据源和自己的持久对象集。
所以我需要能够将实体范围扩展到特定的实体管理器工厂。我不希望将实体名称硬编码到persistence.xml
。
当JPA扫描实体时,是否有某种方法可以在类路径扫描程序上放置过滤器?或者某种方式将实体连接到特定的持久性单元。
答案 0 :(得分:1)
也许我误解了你想要的东西,但是......
通过为每个persistence units指定唯一名称来单独定义{{3}}。通过LocalContainerEntityManagerFactoryBean
属性为每个persistenceUnitName
实例指定所述名称。
答案 1 :(得分:0)
您的2个PU将具有相同的类(域对象),但它们通过您为2个不同的工厂bean提供的PU名称进行区分,并将它们注入到您的相应DAO中。现在,如果您使用Hibernate作为JPA提供程序,那么您可以定义
<property name="hibernate.archive.autodetection" value="class,hbm" />
让您的工厂自动扫描实体的类路径(使用类或 hbm ,具体取决于您是使用注释还是hbm文件),然后您不必明确列出你的课程。