JPA QueryDSL: count() 导致 ORA-01722: 数字无效

JPA QueryDSL: count() leads to ORA-01722: invalid number

我有以下查询,它试图查找所有 运行 跟踪的计数:

new JPAQuery(getEntityManager()).from(myTracking)
            .where(myTracking.trackingStatus.isNotNull(),
            myTracking.trackingStatus.eq(TrackingStatus.RUNNING))
            .count()

这将导致 ORA-01722:无效数字。为什么?

编辑:SQL 语句的记录:

    /* select
    count(myTracking) 
from
    MyTracking myTracking 
where
    myTracking.trackingStatus is not null 
    and myTracking.trackingStatus = ?1 */ select
        count(mytrackin0_.ID) as col_0_0_ 
    from
        owner.T_my_TRACKING mytrackin0_ 
    where
        (
            mytrackin0_.STATUS is not null
        ) 
        and mytrackin0_.STATUS=?

解决方案是我忘记将 @Enumerated(EnumType.STRING) 添加到我的 Enum 属性中。

MyEntity{
@Enumerated(EnumType.STRING)
private TrackingStatus trackingStatus;
}

这导致 Enum-Position 而不是 Enum-String 被插入到数据库列中。
一旦我添加了注释,数据库中的静止 运行 跟踪就会与查询中的枚举字符串的枚举位置进行比较 -> ORA-01722:无效数字。
解决方案是 delete/migrate 几个错误的映射跟踪。