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

无法提取ResultSet。Oracle数据库的问题

祝灼光
2023-03-14

我有一个与Oracle数据库应用程序连接的Spring Boot。同一版本的应用程序在MySQL上运行良好,但当我尝试对Oracle数据库执行一些请求时,它会抛出错误:

Servlet.service()的servlet[调度Servlet]在上下文与路径[]抛出异常[请求处理失败;嵌套异常org.springframework.dao.InvalidDataAccessResourceUsageExctive:无法提取ResultSet;SQL[n/a];嵌套异常org.hibernate.exception.SQLGrammarExctive:无法提取ResultSet]根原因

“状态”:500,“错误”:“内部服务器错误”,“跟踪”:“org.springframework.dao.InvalidDataAccessResourceUsageException:无法提取结果集;SQL[n/a];嵌套异常为org.hibernate.exception.sqlgrammareException:无法提取结果集\r\n\tat org.springframework.orm.jpa.vendor.hibernatePadialect.convertHibernateAccessException(hibernatePadialect.java:281)\r\n\t组织。springframework。奥姆。jpa。小贩HibernatePadialect。TranslateException如果可能(HibernateJpaDialect.java:255)\r\n\t org。springframework。奥姆。jpa。AbstractEntityManagerFactoryBean。TranslateException如果可能(AbstractEntityManagerFactoryBean.java:528)\r\n\t org。springframework。刀。支持ChainedPersistenceExceptionTranslator。TranslateException如果可能(ChainedPersistenceExceptionTranslator.java:61)\r\n\t组织。springframework。刀。支持数据附件。translateIfNecessary(DataAccessUtils.java:242)\r\n\t组织。springframework。刀。支持PersistenceExceptionTranslationInterceptor。在com上调用(PersistenceExceptionTranslationInterceptor.java:154)。实例帕维尔。费用控制器。费用控制员。createExpense(ExpenseController.java:67)~[classes/:na]等。。。

下面是我的控制器方法:

    @PostMapping("/expense")
    ResponseEntity<Expense> createExpense(@Valid @RequestBody Expense expense) throws URISyntaxException {

        Expense result = expenseRepository.save(expense);
        return ResponseEntity.created(new URI("/api/expense/" + result.getId())).body(result);
    }

还有我的消费模式

@NoArgsConstructor
@Data
@Table(name="expense")
@Entity
public class Expense {

    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;

    private Instant date; 

    private double amount;
    
    private String description;

    @ManyToOne
    private Category category;

    @ManyToOne
    private User user;

// Getters and setters

这是我的申请表。属性

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
spring.jpa.properties.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.show-sql=true

spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.username=system
spring.datasource.password=root
spring.datasource.initialization-mode=always
spring.datasource.validationQuery=SELECT 1

logging.level.org.hibernate.SQL=DEBUG
spring.server.compression.enabled=true

spring.jpa.database-platform=org.hibernate.dialect.Oracle12cDialect

spring.jpa.properties.hibernate.format_sql=true

共有1个答案

郎成龙
2023-03-14

您应该向应用程序中添加Hibernate方言。像这样的财产

html prettyprint-override">spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
 类似资料:
  • 问题内容: 安慰: 问题: 当我从类执行函数时,就会发生这种情况。这是怎么回事 问题答案: 如下更改查询: 否则如下: 中相应的比较 ,其中 子句是具有文字,而不是另一列。因此,必须在第一种情况下用引号引起来,或者在第二种情况下使用绑定变量。

  • 嗨,你能帮我解决这个问题吗。我在MySQL DB中连接了这个应用程序,每次运行这个作业从DB中取数据时,我总是会得到这个异常(参见添加了Java类、DAO和方法以及apache DBCP2配置的全栈跟踪)。 null

  • 我无法获取结果,create查询正在执行,但之后将其转换为list无法工作。请帮我解决这个问题。为什么它没有被转换成列表我无法获取结果,创建查询正在被执行,但之后将它转换成列表不起作用。请帮我解决这个问题。为什么它没有被转换成列表 表脚本 bean类 控制器方法是: 错误日志 null AnswerEntity类

  • 目前,我在为springboot项目获取mysql数据时遇到了一个问题: 编辑:Application.Properties 我能够使/test/welcome映射工作,因此我相信我对服务和控制器的实现是正确的。所以我想知道我是不是在访问存储库中的数据库时犯了一个错误,还是应该使用JpaRepository而不是CrudRepository并使用显式查询? 编辑堆栈跟踪:org.springfra

  • 我已经将支持JAR和jdbc驱动程序添加到我的项目中,但我仍然得到了低于例外情况 getting找不到resultset异常错误执行load命令:getting sqlgrammerexception 我的配置文件

  • 这是我的POJO类,名为Student,我为它创建了一个表来更新标记。 这是我的主要班级 当我尝试执行该操作时,它显示了另一个错误,错误是“student0_”。“verson”:无效标识符