在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和服务器应用程序之间的重复代码
答案 0 :(得分:5)
默认情况下,您找不到Customer
个实体,因为它不属于Application
类的子版本。尝试使用@EntityScan
注释(请参阅http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-separate-entity-definitions-from-spring-configuration)。