当前位置: 首页 > 知识库问答 >
问题:

创建名为“org”的bean时出错。springframework。靴子自动配置。奥姆。jpa。HibernateJpacConfiguration'

习阳
2023-03-14

我试图开发一个具有Spring JPA和Hibernate实现的示例Spring Boot应用程序。虽然我设法让我的安装完成,我得到以下错误,而运行的应用程序。

创建名为“org”的bean时出错。springframework。靴子自动配置。奥姆。jpa。HibernateJpacConfiguration'

我怀疑这是某种基于配置的错误,但我无法确定错误的来源。

我看到过一些有这个错误的帖子,并尝试过这些解决方案。但是这些并没有帮助我解决这个错误。

这是我的应用程序的设置。

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.shandesh</groupId>
    <artifactId>training</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.4</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>tomcat-jdbc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.16</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

应用yml文件:-

spring:
  profiles: dev
  datasource:
    url: jdbc:oracle:thin:@//localhost:1521/orcl
    driverClassName: oracle.jdbc.driver.OracleDriver
    username: ****
    password: ****

  jpa:
    show_sql: true
    generate-ddl: false
    hibernate:
      ddl-auto: none
    properties:
      hibernate.dialect: org.hibernate.dialect.OracleDialect

实体类:-

package com.shandesh.dao;

import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.sql.Timestamp;

@Getter
@Setter
@Entity
@Table(name = "APPUSER")
public class AppUserDTO {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "USER_ID")
    Long userId;

    @Column(name = "USER_NAME")
    String userName;

    @Column(name = "USER_FIRST_NAME")
    String userFirstName;

    @Column(name = "USER_LAST_NAME")
    String userLastName;

    @Column(name = "LAST_UPDATED_BY")
    String lastUpdatedBy;

    @Column(name = "LAST_UPDATED_DATE")
    Timestamp lastUpdatedDate;
}

存储库类:-

package com.shandesh.repository;

import com.shandesh.dao.AppUserDTO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.stereotype.Repository;

import javax.transaction.Transactional;
import java.util.List;

@Repository
public interface AppUserRepository extends JpaRepository<AppUserDTO, Integer> {

    List<AppUserDTO> findByUserName(String userName);
    List<AppUserDTO> findByUserId(Integer userId);
    List<AppUserDTO> findAll();

    @Modifying
    Long deleteByUserName(String userName);

    @Modifying
    Long deleteByUserid(Integer userId);

}

服务类别:-

package com.shandesh.service;

import com.shandesh.dao.AppUserDTO;
import com.shandesh.repository.AppUserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class AppUserService {

    @Autowired
    private AppUserRepository appUserRepository;

    public List<AppUserDTO> getAllAppUsers() {
        return appUserRepository.findAll();
    }
}

控制器类:-

package com.shandesh.controller;

import com.shandesh.dao.AppUserDTO;
import com.shandesh.service.AppUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@EnableAutoConfiguration //(exclude={DataSourceAutoConfiguration.class})
public class UserController {

    @Autowired
    private AppUserService appUserService;

    @RequestMapping(value = "/getAllUsers", produces = MediaType.APPLICATION_JSON_VALUE)
    public List<AppUserDTO> getAllUsers() { return appUserService.getAllAppUsers(); }

}

通过IntelliJ控制台运行应用程序时进行堆栈跟踪。

. ____ _____ /\ / ' __ __ __ __ _ \ \ \ \ ( ( )<--8/> | ' _ | '| | ' / ` | \ \ \ \ \/ )| |)| | | | | || (| | ) ) ) ) ' |____| .|| ||| |__, | / / // =========| _ |==============|___/=/// _/:: Spring启动:: (v2.1.0.发布)

2019-07-11 10:12:12.575信息5872---[main]com。山德斯。应用:使用PID 5872在SKD-PC上启动应用程序(G:\Shantanu\Learning\Technology\Projects\training\target\classes由Shantanu在G:\Shantanu\Learning\Technology\Projects\training中启动)2019-07-11 10:12:12.582 INFO 5872---[main]com。山德斯。应用:未设置活动配置文件,返回默认配置文件:默认2019-07-11 10:12:13.827信息5872---[main]。s、 d.r.c.RepositoryConfigurationDelegate:在默认模式下引导Spring数据存储库。2019-07-11 10:12:13.925信息5872---[main]。s、 d.r.c.RepositoryConfigurationDelegate:在86毫秒内完成Spring数据存储库扫描。找到1个存储库接口。2019-07-11 10:12:14.778信息5872---[main]trationlegate$BeanPostProcessorChecker:Bean'org。springframework。交易注释。[org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$bf78f5b2]类型的“ProxyTransactionManagementConfiguration”不适合由所有BeanPostProcessor处理(例如:不适合自动代理)2019-07-11 10:12:15.211信息5872---[main]o.s.b.w.embedded。公猫TomcatWebServer:Tomcat已使用端口初始化:8080(http)2019-07-11 10:12:15.230信息5872---[main]o.apache。卡塔琳娜。果心标准服务:开始服务[Tomcat]2019-07-11 10:12:15.231信息5872---[main]组织。阿帕奇。卡塔琳娜。果心标准引擎:启动Servlet引擎:ApacheTomcat/9.0。12 2019-07-11 10:12:15.238信息5872---[main]o.a.catalina。果心AprLifecycleListener:使用APR版本[1.6.5]加载了基于APR的ApacheTomcat本机库[1.2.21]。2019-07-11 10:12:15.238信息5872---[main]o.a.catalina。果心AprLifecycleListener:APR功能:IPv6[true]、sendfile[true]、接受筛选器[false]、随机[true]。2019-07-11 10:12:15.238信息5872---[main]o.a.catalina。果心AprLifecycleListener:APR/OpenSSL配置:UseApConnector[false],useOpenSSL[true]2019-07-11 10:12:15.242信息5872---[main]o.a.catalina。果心AprLifecycleListener:OpenSSL已成功初始化[OpenSSL 1.1.1a 2018年11月20日]2019-07-11 10:12:15.396信息5872---[main]o.a.c.c.c。[雄猫]。[本地主机]。[/]:初始化Spring嵌入式WebApplicationContext 2019-07-11 10:12:15.396信息5872---[main]o.s.web.context。ContextLoader:根WebApplicationContext:初始化在2735毫秒2019-07-11 10:12:15.434信息5872---[main]o.s.b.w.servlet中完成。ServletRegistrationBean:ServletDispatchersServlet映射到[/]2019-07-11 10:12:15.439信息5872---[main]o.s.b.w.Servlet。FilterRegistrationBean:将筛选器:“characterEncodingFilter”映射到:[/]2019-07-11 10:12:15.440信息5872---[main]o.s.b.w.servlet。FilterRegistrationBean:将筛选器:“hiddenHttpMethodFilter”映射到:[/]2019-07-11 10:12:15.440信息5872---[main]o.s.b.w.servlet。FilterRegistrationBean:将筛选器:“formContentFilter”映射到:[/]2019-07-11 10:12:15.440信息5872---[main]o.s.b.w.servlet。FilterRegistrationBean:将筛选器:“requestContextFilter”映射到:[/]2019-07-11 10:12:15.481警告5872---[main]ConfigServletWebServerApplicationContext:上下文初始化期间遇到异常-取消刷新尝试:org。springframework。豆。工厂UnsatifiedPendencyException:创建名为“org”的bean时出错。springframework。靴子自动配置。奥姆。jpa。HibernateJpacConfiguration”:通过构造函数参数0表示的未满足的依赖项;嵌套的异常是org。springframework。豆。工厂BeanCreationException:创建在类路径资源[org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]中定义的名为“dataSource”的bean时出错:通过工厂方法实例化bean失败;嵌套的异常是org。html" target="_blank">springframework。豆。BeanInstationException:未能实例化[com.zaxxer.hikari.HikariDataSource]:工厂方法“dataSource”引发异常;嵌套的异常是org。springframework。靴子自动配置。jdbc。DataSourceProperties$DataSourceBeanCreationException:未能确定合适的驱动程序类别2019-07-11 10:12:15.484信息5872---[main]o.apache。卡塔琳娜。果心标准服务:停止服务[Tomcat]2019-07-11 10:12:15.523信息5872---[main]条件评估报告日志监听器:

启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2019-07-11 10:12:15.531错误5872---[main]o.s.b.d.记录故障分析报告员:

应用程序无法启动

说明:

配置DataSource失败:未指定url属性,无法配置嵌入式数据源。

原因:无法确定合适的驱动程序类别

行动:

考虑下面的内容:如果你想要一个嵌入式数据库(H2,HSQL或DeBy),请把它放在类路径上。如果要从特定配置文件加载数据库设置,则可能需要激活它(当前没有激活的配置文件)。

退出代码1的过程结束

我希望这个应用程序能够成功运行,并且能够看到所有用户条目的JSON输出https://localhost:8080/getAllUsers.

共有1个答案

夹谷阳夏
2023-03-14

改变

findAppUserDTOSByUserName(字符串用户名)findAppUserDTOSByUserId(整数userId)

findByUserName(String userName)findByUserId(intger userId);

Spring Data存储库架构体系中内置的查询生成器机制对于构建对存储库实体的约束查询非常有用。该机制剥离前缀查找...byread...通过查询...通过计数...通过,和获取...byfrom the方法并开始解析其余部分。引入子句可以包含进一步的表达式,例如用于在要创建的查询上设置不同标志的区分。

另外,请注意,您不需要将@restebody@RestController一起使用,因为默认情况下它处于活动状态。将getAllUsers()的返回类型从对象更改为列表

 类似资料: