Hibernate/DB2获取未知列错误4460
我正试图将一个实体映射到一个现有的表以实现只读。我使用的帐户仅具有SELECT权限 我将@ID映射到的列已填充。我的实体看起来像这样Hibernate/DB2获取未知列错误4460,hibernate,orm,db2,Hibernate,Orm,Db2,我正试图将一个实体映射到一个现有的表以实现只读。我使用的帐户仅具有SELECT权限 我将@ID映射到的列已填充。我的实体看起来像这样 @Entity @Table(name = "MYTABLE", schema="MYSCHEMA") public class PaymentsEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ssn", updatable
@Entity
@Table(name = "MYTABLE", schema="MYSCHEMA")
public class PaymentsEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ssn", updatable = false, nullable = false)
private Long ssn;
@Column(name = "amount")
private BigDecimal amount;
@Column(name = "business_date")
private Date businessDate;
@Column(name = "receiver")
private String receiver;
@Column(name = "sender")
private String sender;
// getters and setters
}
@Repository
@Transactional
public interface PaymentsRepository extends JpaRepository<PaymentsEntity, BigInteger> {
@Query(value = "SELECT sender, receiver, amount, business_date FROM MYSCHEMA.MYTABLE WHERE business_date = ?1 ORDER BY Amount ASC",
nativeQuery = true)
public List<PaymentsEntity> findByBusinessDate(Date businessDate);
}
我的存储库看起来像这样
@Entity
@Table(name = "MYTABLE", schema="MYSCHEMA")
public class PaymentsEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ssn", updatable = false, nullable = false)
private Long ssn;
@Column(name = "amount")
private BigDecimal amount;
@Column(name = "business_date")
private Date businessDate;
@Column(name = "receiver")
private String receiver;
@Column(name = "sender")
private String sender;
// getters and setters
}
@Repository
@Transactional
public interface PaymentsRepository extends JpaRepository<PaymentsEntity, BigInteger> {
@Query(value = "SELECT sender, receiver, amount, business_date FROM MYSCHEMA.MYTABLE WHERE business_date = ?1 ORDER BY Amount ASC",
nativeQuery = true)
public List<PaymentsEntity> findByBusinessDate(Date businessDate);
}
如果将ssn字段的类型更改为BigInteger,则会出现以下错误
com.ibm.db2.jcc.am.SqlException: [jcc][10150][10300][4.19.49] Invalid parameter: Unknown column name ssn. ERRORCODE=-4460, SQLSTATE=null
org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [ssn] in table [PFA.PAYMENTS]; found [bigint (Types#BIGINT)], but expecting [decimal(19,2) (Types#NUMERIC)]
所以,这个专栏并不是真的未知,我收到了一条毫无帮助的错误消息
我尝试使用useJDBC4ColumnNameandLabelsMantics=2连接参数,但它没有改变任何内容
我使用的是Hibernate5.4.6.FINAL,IBMDB2驱动程序的版本是4.19.49。DB2数据库是在AIX上运行的10.5版
非常感谢您提供的任何帮助。我认为您得到的第一个例外与sql投影中缺少
ssn
有关。正确的查询应该是选择ssn、发件人、收件人、金额、业务日期…
第二个异常的原因看起来完全不同。可能GenerationType.IDENTITY要求属性类型为Long