我使用Spring boot + JPA并在启动服务时遇到问题.
Caused by: java.lang.IllegalArgumentException: Not an managed type: class com.nervytech.dialer.domain.PhoneSettings
at org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java:219)
at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:68)
at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:89)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:69)
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:177)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:239)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:225)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562)
Run Code Online (Sandbox Code Playgroud)
这是Application.java文件,
@Configuration
@ComponentScan
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
@SpringBootApplication
public class DialerApplication {
public static void main(String[] args) {
SpringApplication.run(DialerApplication.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
我使用UCp进行连接池,DataSource配置如下,
@Configuration
@ComponentScan
@EnableTransactionManagement
@EnableAutoConfiguration
@EnableJpaRepositories(entityManagerFactoryRef = "dialerEntityManagerFactory", transactionManagerRef = "dialerTransactionManager", basePackages = { "com.nervy.dialer.spring.jpa.repository" })
public class ApplicationDataSource { …Run Code Online (Sandbox Code Playgroud) 所以我一直在学习一周中的Spring,一直在学习本教程
一切顺利,直到我试图将它整合到mongodb.所以我按照本教程.
但我的做法部分仍在使用第一个.所以我的项目目录结构是这样的.
src/
??? main/
? ??? java/
| ??? model/
| | ??? User.java
| ??? rest/
| | ??? Application.java
| | ??? IndexController.java
| | ??? UsersController.java
| ??? service/
| ??? UserService.java
??? resources/
??? application.properties
Run Code Online (Sandbox Code Playgroud)
这是我的model/User.java文件
package main.java.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection="user")
public class User {
private int age;
private String country;
@Id
private String id;
private String name;
public User() {
super();
}
public String getId() { …Run Code Online (Sandbox Code Playgroud) 我从学习Spring开始,创建基本项目,创建数据库,插入值,然后在Web浏览器中打印.我的问题是,当我将RestController放在像主类一样的包中时 - 它可以,但我想将它分发给其他包,当我创建新包时,移动RestController它不起作用.让我们解释一下:
我的项目看起来像:
|-Springtestv_01
|-src/main/java
|--com.person <-- it's a main package
|-Main.java
|-Person.java
|-PersonLineRunner.java
|-PersonRepository.java
|-PersonController.java
|-com.controller <-- second package, I want put here PersonController.java
|-src/main/resources
|-data.sql
pom.xml
Run Code Online (Sandbox Code Playgroud)
我的控制器看:
@RestController
public class PersonController {
@Autowired PersonRepository personRepository;
@RequestMapping("/persons")
Collection<Person> persons(){
return this.personRepository.findAll();
}
}
Run Code Online (Sandbox Code Playgroud)
当所有东西都在com.person包装中时,我写在网页浏览器http:// localhost:8080 /个人并且它正常工作......但我想转移PersonController.java到com.controller包装,当我移动它时,我的网页浏览器打电话给我
出现意外错误(type = Not Found,status = 404).没有可用的消息
我不知道应该怎么做才能修复它.也许我应该改变一些事情pom.xml?
我的pom.xml看起来像
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.person</groupId>
<artifactId>person</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SpringTest_v0_1</name> …Run Code Online (Sandbox Code Playgroud) spring ×3
java ×2
jpa ×1
maven ×1
mongodb ×1
package ×1
rest ×1
spring-boot ×1
spring-data ×1
spring-mvc ×1