Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate/DB2获取未知列错误4460_Hibernate_Orm_Db2 - Fatal编程技术网

Hibernate/DB2获取未知列错误4460

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

我正试图将一个实体映射到一个现有的表以实现只读。我使用的帐户仅具有SELECT权限

我将@ID映射到的列已填充。我的实体看起来像这样

@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