繁体   English   中英

JPA实体包含来自外部jar的类

[英]JPA entity containing a class from an external jar

我正在使用JPA和Hibernate构建Roo Webapp。 我有一个从Webapp引用的图书馆项目。 Roo Webapp具有以下实体:

@RooJpaEntity
@RooJavaBean
public class UpdatePolicyHolder {

    @ElementCollection(targetClass=Policy.class)
    private List<Policy> policies;
    private String deviceId;
    private long timestamp;

}

Policy类在一个外部库中定义,并包含在一个jar文件中。 启动应用程序时,Hibernate抱怨无法确定Policy的类型:

Could not determine type for: com.company.policy.Policy, at table:...

我似乎找不到关于包含的外部类问题的任何在线信息。 我尚未对Roo生成的标准persistence.xml文件进行任何更改。 我确实修改了applicationContext.xml文件,以确保实体和Policy类的包都被组件扫描元素覆盖。

该webapp项目打包为war,目前通过mvn jetty:run命令mvn jetty:run 通过Maven依赖项包含包含Policy的jar。

包含Policy的jar必须包含META-INF/persistence.xml以使第三方应用程序扫描该jar中的实体。

然后设置Spring EntityManagerFactory来扫描持久实体:

<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
    id="entityManagerFactory">
  <property name="persistenceUnitName" 
      value="UNIT_NAME_OF_POLICY_PERSISTENCE_XML"/>
  <property name="dataSource" ref="..."/>
  <property name="packagesToScan" value="com.company.policy" />
...
</bean>

问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM