微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JPA本机查询-导致未知列错误的参数,未转换为字符串

如何解决JPA本机查询-导致未知列错误的参数,未转换为字符串

我的简单JPA本机查询有问题

@Query(value =
    "SELECT * FROM transaction " +
    "WHERE " +
    "( :broker IS NULL OR transaction.broker = :broker ) AND " +
    "( :transaction_type IS NULL OR transaction.transaction_type = :transaction_type ) AND " +
    "( :asset_id IS NULL OR transaction.asset_id = :asset_id )",nativeQuery = true)
Optional<List<TransactionEntity>> findAllByParams(@Param("broker") broker broker,@Param("transaction_type") TransactionType transactionType,@Param("asset_id") Long assetId);

经纪人和TransactionType是枚举。

  • 经纪人=革命
  • TransactionType =交易
  • assetId = 6386

控制台在运行查询显示此信息

SELECT * FROM transaction WHERE ( REVOLUT IS NULL OR transaction.broker = REVOLUT ) AND ( TradE IS NULL OR transaction.transaction_type = TradE ) AND ( 6386 IS NULL OR transaction.asset_id = 6386 )

运行时出现此错误

[2020-10-30 19:23:42] [42S22][1054] UnkNown column 'REVOLUT' in 'where clause'

不理解为什么没有将命名参数转换为字符串。尝试了所有我能想到的尝试将其强制为字符串,但没有任何改变。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。