问题描述:项目中使用Maven管理,将项目划分为多个子模块,每个子模块中都自己模块的实体类。 在主模块中使用Spring JPA的配置如下:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="persistenceUnitName" value="persistence"/>
<property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.SingletonEhCacheRegionFactory</prop>
<prop key="net.sf.ehcache.configurationResourceName">ehcache/ehcache-hibernate-local.xml</prop>
<prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
</props>
</property>
</bean>
这样配置会引起一个问题:子模块JAR中实体类不会被扫描。
问题的解决方案如下:
1. 删除对应的entityManagerFactory中的属性:
<property name="persistenceUnitName" value="persistence"/>;
2. 增加新的entityManagerFactory属性:
<property name="packagesToScan" value="自己的Entity类包名"/>
3. 删除persistence对应的配置文件;
分享到:
相关推荐
这个问题通常出现在使用Spring自动扫描机制来查找并加载JPA实体类时,如果这些实体类位于外部的jar包中,Spring可能无法正确识别和处理。 Spring通过`@EntityScan`或`<jpa:entity-manager-factory>`等配置元素来...
Spring Data JPA是Spring框架的一个模块,专门用于简化Java Persistence API (JPA)的使用,它使得数据库操作变得更加便捷和高效。JPA是Java中的一种ORM(对象关系映射)规范,允许开发者以面向对象的方式处理数据库...
Entity Manager Factory用于创建EntityManager实例,而Persistence Unit则是定义了所有参与JPA的实体类和数据库连接配置。 在实际项目中,这些jar包通常是通过Maven或Gradle等构建工具管理的,而不是手动添加到项目...
`META-INF`目录通常是Java应用中的元数据目录,包含如MANIFEST.MF文件,用于描述JAR包的信息,但在这个场景下未提供具体文件,所以无法给出更多细节。在实际项目中,它可能包含Hibernate的映射文件或者自定义的实体...
4. **其他依赖**:根据你的应用需求,可能还需要一些额外的库,如Spring Data JPA(如果你的项目使用Spring框架), `jta.jar`(Java Transaction API,用于事务管理)等。 在实际项目中,我们通常不再手动管理这些...
实体对象在 Spring Data JPA 中通常通过注解进行定义,如 `@Entity` 标记实体类,`@Table` 指定对应的数据库表,`@Id` 标识主键,以及其他字段级注解如 `@Column` 等。DAO(数据访问对象)接口则可以简单地声明为 ...
自动配置使得开发者无需手动配置大量的Bean,Spring Boot会根据类路径下的jar包自动配置相应的Bean。起步依赖则允许我们通过简单地添加依赖项就能启动特定的功能,如数据源、JPA等。内嵌的Web服务器如Tomcat或Jetty...
`SpringJPA-war.war`是Spring应用的WAR包,通常用于在Web服务器上部署。`META-INF`目录包含应用的元数据,如`MANIFEST.MF`文件,它定义了WAR包的结构和依赖。 综上所述,Spring JPA是Spring框架中用于数据库操作的...
标题"JPA相关jar包"指的是与Java Persistence API(JPA)相关的Java库,这里提到了两个具体的jar包:spring-data-commons-1.10.2.RELEASE.jar 和 spring-data-jpa-1.8.2.RELEASE.jar。这两个jar包是Spring Data框架...
6. 在Spring Boot应用启动类上添加`@EnableJpaRepositories`和`@EntityScan`注解,启用JPA和实体扫描: ```java @SpringBootApplication @EnableJpaRepositories(basePackages = {...
至于`lib1`这个文件,可能包含了整合所需的一些依赖库,比如Struts2、Spring和JPA实现的JAR包,以及可能的数据库驱动和其他支持库。确保这些库被正确地添加到项目的类路径中是成功整合的基础。 总的来说,Struts2、...
- 当把代码部署到服务器时,确保所有相关的 jar 包都已经包含在部署包中。 - 事务管理需要谨慎,避免出现数据不一致的情况。 5. **实践应用** - 通过 Myeclipse6.x 创建 Spring 项目,并配置好 JPA 依赖。 - ...
在Spring框架中,可以通过Spring Data JPA模块来简化配置,只需要在配置文件中指定数据源、JPA供应商和实体扫描路径即可。 在实际应用中,JPA允许开发者使用注解来定义实体类和字段,然后通过 EntityManager 对象...
JPA允许我们定义实体类,这些类代表数据库中的表,通过注解如`@Entity`、`@Table`等来配置。它还支持数据访问对象(DAO)模式,通过`EntityManager`接口和`Query`对象来执行CRUD(创建、读取、更新、删除)操作。...
5. **Spring Data JPA(如果使用Spring框架)**:如果在Spring框架下使用JPA,还需要`spring-data-jpa.jar`以及相关的Spring核心库,如`spring-context.jar`,`spring-orm.jar`等。 6. **其他辅助库**:可能还包括...
4. 注解实体类:使用JPA的@Entity注解定义实体类,并使用@Table指定对应的数据库表。 5. 创建Repository:使用JPA的Repository接口或其子接口,定义数据库操作方法。 6. 配置Spring:在Spring的配置文件中启用事务...
4. 定义实体类:创建与数据库表对应的Java类,使用JPA的注解如@Entity、@Table、@Id等。 5. 创建Repository:定义接口继承自JPA提供的CrudRepository或JpaRepository,用于数据的CRUD操作。 6. 配置事务管理:Spring...
2. **实体管理**:通过定义@Entity注解的类,JPA可以管理这些类的生命周期,包括创建、更新、删除等操作。 3. **查询语言**:JPQL(Java Persistence Query Language)是JPA的查询语言,类似于SQL,但操作的是对象,...
- `@Repository`:在 Dao 类上使用,表明这是一个数据访问对象,Spring Data JPA 会自动处理其中的方法,如 CRUD 操作。 - `@RepositoryDefinition`:用于自定义 Dao 层的通用方法,例如分页和动态查询。 - `@...