스프링 부트 - 저장소 필드에는 'entityManagerFactory'라는 이름의 빈을 찾을 수 없습니다.
Spring Boot 어플리케이션 개발 중에 서버를 시작할 때 이 오류가 발생했습니다.주석을 잘못 정의했거나 종속성이 누락되었는지 확신할 수 없습니다.어떤 도움이라도 주시면 감사하겠습니다.
메인 클래스:
@SpringBootApplication
public class FantasyManagerApplication {
public static void main(String[] args) {
SpringApplication.run(FantasyManagerApplication.class, args);
}
}
리그 서비스자바:
@Service
public class LeagueService {
@Autowired
private LeagueRepository leagueRepository;
@Autowired
private PlayerRepository playerRepository;
@Autowired
private TeamRepository teamRepository;
/**
* Returns a list of all the leagues in the database
* @return List<League>
*/
public List<League> getAllLeagues(){
List<League> leagues = new ArrayList<>();
leagueRepository.findAll()
.forEach(leagues::add);
return leagues;
}
/**
* Find details for a particular League
* @param leagueId
* @return League
*/
public League getLeagueById(long leagueId){
return leagueRepository.findOne(leagueId);
}
/**
* Find the leagueSettings for a particular League
* @param leagueId
* @return LeagueSettings
*/
public LeagueSettings getLeagueSettingsById(long leagueId){
return leagueRepository.findOne(leagueId).getLeagueSettings();
}
/**
* Returns a list of all the Team's in the League
* @param leagueId
* @return List<Team>
*/
public List<Team> getTeamsInLeague(long leagueId){
List<Team> teams = new ArrayList<>();
leagueRepository.findOne(leagueId).getTeams()
.forEach(teams::add);
return teams;
}
/**
* Returns a list of all the Player's in the League
* @param leagueId
* @return List<Player>
*/
public List<Player> getPlayersInLeague(long leagueId){
List<Player> players = new ArrayList<>();
leagueRepository.findOne(leagueId).getPlayers()
.forEach(players::add);
return players;
}
/**
* Returns a list of all the User's in the League
* @param leagueId
* @return List<User>
*/
public List<User> getUsersInLeague(long leagueId){
List<User> users = new ArrayList<>();
leagueRepository.findOne(leagueId).getUsers()
.forEach(users::add);
return users;
}
/**
* Add League to database
* @param league
*/
public void addLeague(League league){
leagueRepository.save(league);
}
/**
* Assign LeagueSettings for a League
* @param userId
* @param leagueSettings
*/
public void assignLeagueSettings(long leagueId, LeagueSettings leagueSettings){
League league = leagueRepository.findOne(leagueId);
league.setLeagueSettings(leagueSettings);
leagueRepository.save(league);
}
/**
* Assign a Player to a League and vice versa
* @param leagueId
* @param playerId
*/
public void assignPlayerToLeague(long leagueId, long playerId){
//Find the league and player from the database
League league = leagueRepository.findOne(leagueId);
Player player = playerRepository.findOne(playerId);
//Get the players that the league already has
List<Player> players = new ArrayList<>();
players = league.getPlayers();
//Get the leagues that the player is part of
List<League> leagues = new ArrayList<>();
leagues = player.getLeagues();
//Assign player to this league and vice versa
leagues.add(league);
players.add(player);
league.setPlayers(players);
player.setLeagues(leagues);
//Update changes in database
playerRepository.save(player);
leagueRepository.save(league);
}
/**
* Assign a Team to a League and vice versa
* @param leagueId
* @param teamId
*/
public void assignTeamToLeague(long leagueId, long teamId){
//Find the league and player from the database
League league = leagueRepository.findOne(leagueId);
Team team = teamRepository.findOne(teamId);
//Get the teams that are already in the league
List<Team> teams = new ArrayList<>();
teams = league.getTeams();
//Assign team to this league and vice versa
teams.add(team);
league.setTeams(teams);
team.setLeague(league);
//Update changes in database
teamRepository.save(team);
leagueRepository.save(league);
}
/**
* Edit the details for a particular League
* @param league
*/
public void updateLeague(League league, long leagueId){
leagueRepository.save(league);
}
/**
* Delete the League from the database
* @param leagueId
*/
public void deleteLeague(long leagueId){
leagueRepository.delete(leagueId);
}
}
리그리포지토리.java
public interface LeagueRepository extends CrudRepository<League, Long> {
}
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.dheeraj</groupId>
<artifactId>fantasy-manager</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>fantasy-manager</name>
<description>Fantasy Manager Application</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.4.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.3.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
오류:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field leagueRepository in com.dheeraj.service.LeagueService required a bean named 'entityManagerFactory' that could not be found.
Action:
Consider defining a bean named 'entityManagerFactory' in your configuration.
spring-boot-syslog-data-jpa는 필요한 휴지 상태의 의존관계를 모두 가져옵니다.스프링 부트 릴리스 1.5.1을 사용하면 hibernate-core: 5.0.11 및 hibernate-entitymanager: 5.0.11을 가져옵니다.불필요할 뿐만 아니라, 휴지 상태의 의존 관계 버전이 일치하지 않기 때문에, 에러가 발생하고 있는 것이 원인이라고 생각됩니다.
이러한 의존관계를 pom.xml에서 삭제해 보십시오.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.4.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.3.Final</version>
</dependency>
이러한 의존 관계를 시험해 보십시오.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
다음 대신:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.4.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.2.3.Final</version>
</dependency>
프로세스 수집 중 Spring Data JPA에 hibernate-core 5.2.0 문제가 발생.Spring Data JPA를 사용하는 경우 Spring Data JPA에서는 Hibernate-core 5.2.1 이상을 사용할 수 있습니다.
휴지 상태 이후 5.2.0부터는 휴지 상태-엔티티 매니저가 필요하지 않습니다.
변경해 보겠습니다.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.4.Final</version>
</dependency>
이 버전:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version> 5.2.1.Final</version>
</dependency>
이것으로 나는 해결되었다.
이 문제는 버전 불일치가 원인일 수 있습니다.다음과 같이 종속성을 지정하면 문제를 해결할 수 있습니다(버전은 언급되지 않으므로 자동으로 관리됨).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
종속성을 삭제해 보십시오.
- ~/.m2/리포지토리(Linux)
- C: / Users / your _ user / . m2 / repository ( Windows )
또한 IDE의 업데이트 종속성 기능을 사용하거나 프로젝트 폴더에서 mvn 설치를 실행하여 프로젝트 종속성을 추가로 업데이트할 수 있습니다.
데이터 소스가 2개인 경우 데이터 소스 중 하나에 @Primary를 추가합니다.
나는 그 문제를 다시 발견했다.내가 한 일은 폼 의존도를 바꾼 것이다.
spring-data-jpa에서
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>
spring-boot-starter-data-jpa로 이동합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
추가 휴지 상태 관련 종속성은 없습니다.
언급URL : https://stackoverflow.com/questions/42182426/spring-boot-repository-field-required-a-bean-named-entitymanagerfactory-that
'programing' 카테고리의 다른 글
| Unix 명령줄 JSON 파서? (0) | 2023.03.25 |
|---|---|
| golang json marshal: 빈 중첩 구조를 생략하는 방법 (0) | 2023.03.25 |
| Angular JS는 HTML로 코멘트를 남깁니다.삭제 가능합니까? (0) | 2023.03.25 |
| google.com 등의 외부 링크로 UI를 이동하려면 어떻게 해야 합니까? (0) | 2023.03.25 |
| (Angular-ui 지시어를 통해) select2 입력의 폭 설정 (0) | 2023.03.25 |