从Spring中的gradle子项目导入JPA模型

时间:2014-05-29 16:20:43

标签: java spring jpa gradle spring-boot

在android项目中,我想使用带有REST服务器(JPA)的共享模型库 项目结构:

├── android
│   └ ...
│
├── model
│   ├── build.gradle
│   └── src
│       └── com
│           └── model                            // error at runtime
│               └── Customer.java
├── server
│   ├── build.gradle
│   └── src
│       └── com
│           └── server
│                ├── Application.java
│                ├── CustomerController.java
│                ├── CustomerRepository.java
│                └── model                       // works fine
│                    └── Customer.java
├── build.gradle

我正在使用gradle子项目来管理在编译时工作正常的依赖项。 但是当我运行Application时,Spring无法解析JPA注释。 当我将模型类移动到服务器项目时,它工作正常。

Exception in thread "main" org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [...] Instantiation of bean failed;
[...] 
Not an managed type: class com.model.Customer

root build.gradle

buildscript {  ...  }

allprojects {
    repositories {
        mavenCentral()
    }
}

project(":android") {  ...  }

project(":model") {
    apply plugin: "java"
}

project(":server") {
    apply plugin: "java"

    dependencies {
        compile project(":model")
    }
}

是否有解决方案来包含gradle子项目中的JPA模型?
原因主要是为了防止android和服务器应用程序之间的重复代码

1 个答案:

答案 0 :(得分:5)

默认情况下,您找不到Customer个实体,因为它不属于Application类的子版本。尝试使用@EntityScan注释(请参阅http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-separate-entity-definitions-from-spring-configuration)。