Oracle 上的 JPA @Query select 抛出 ORA-01722:字符串上的数字无效

JPA @Query select on oracle throws ORA-01722: invalid number on string

我有以下查询,与 ms-SQL 完美配合,但与 oracle

配合使用失败

有示例查询,原来的很复杂但是这个重现了错误

@Query("SELECT new Map((s.name + ' - ' + s.name) as name , s.idStandard as idStandard) FROM Standard s ")

jpa模型

public class Standard
{


    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(unique = true, nullable = false)
    private int idStandard;

    @Column(name = "Name")
    @NonNull
    private String name;

    @Column(name = "Description")
    private String description;

    @Column(name = "UpdateUser")
    private String updateUser;


    @Column(name = "UpdateDT")
        private Date updateDt;
}

为什么 oracle 认为这是 (s.name + ' - ' + s.name) 是一个数字?

我认为全世界都应该知道 :) 使用连接运算符 ||解决问题! 连接运算符允许您将 2 个或更多字符串连接在一起。

查看文档了解更多信息 https://www.techonthenet.com/oracle/functions/concat2.php

更新查询在 ms SQL 和 oracle

上运行
@Query("SELECT new Map((s.name || ' - ' || s.name) as name , s.idStandard as idStandard) FROM Standard s ")