次の Hibernate クエリでパラメータの値を設定しようとしています。
public List<Transactions> getTransactions(long cardNum, String type) {
Query q1 = factory.getCurrentSession().createQuery("FROM bank.persistence.entity.Transactions WHERE PK_CRED_CARD_ID=:CardID AND TRANSACTION_TYPE=:trType");
q1.setParameter("CardID", cardNum);
q1.setParameter("trType", type);
return q1.list();
}
しかし、次のエラーが発生しています。問題は String 型の値にあるようです:
java.sql.SQLDataException: An attempt was made to get a data value of type 'VARBINARY' from a data value of type 'VARCHAR'.
トランザクション エンティティ クラスは次のとおりです。
package bank.persistence.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
@Entity
public class Transactions implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int ID;
@Column(name = "TRANSACTION_TYPE")
private String transType;
@Column(name = "AMOUNT")
private float amt;
@Column(name = "DESCRIPTION")
private String desr;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "TRANSACTION_DATE")
private Date tranDate;
@ManyToOne
@JoinColumn(name = "PK_ACCT_ID")
private Account account;
@ManyToOne
@JoinColumn(name = "PK_CRED_CARD_ID")
private CreditCard credCard;
// getter and setter for all attributes
}