我有一个案例,我的hibernate实体类有字符串字段,postgres有相同字段的bigint类型。当我尝试对该字段执行查询时,它会抛出“不兼容的类型”。当我尝试将实体字段转换为bigint(cast(fieldname as bigint))时,我遇到异常。 '无法解析CAST请求的类型:数字'..有人可以帮忙吗?
以下是代码段。
@Entity
@Table(name=“CB_MSG”)
public class Chargeback {
....
....
@Column(name="CHRGBK_MSG_SEQ_NUM")
@Id
@SequenceGenerator(name="CB_ID", sequenceName="OB_CHRGBK_MSG_SEQ", allocationSize = 1)
@GeneratedValue(generator="CB_ID", strategy = GenerationType.SEQUENCE)
public int getId() {
return id;
}
@Column(name="CB_REF_NUM”)
public String getChargeBackReferenceNo() {
return chargeBackReferenceNo;
}
.....
}
此属性在postgres表中定义为bigint,我试图查询如下。
@Override
public Chargeback getChargebackById(String chargebackRefNum) {
String finalQuery= "FROM Chargeback CB WHERE cast(CB.chargeBackReferenceNo as bigint) = “ + chargebackRefNum;
Chargeback result = (Chargeback) entityManager.createQuery(finalQuery).getSingleResult();
return result;
}
PS:我无法控制数据库架构,也无法对其进行任何更改。