使用Hibernate

时间:2017-04-12 19:37:44

标签: java hibernate db2

我需要在通过Hibernate将该行插入数据库时​​设置行的DB2SECURITYLABEL。到目前为止,我还没有成功,我正在寻求有关如何在Java中设置DB2SECURITYLABEL的建议,并让Hibernate为我做插入。

在我的实体内部,我定义了以下内容:

@Column(name="slabel")  //this matches the name of the DB2SECURITYLABEL column
private byte[] slabel;

public void setSlabel(byte[] slabel){
     this.slabel = slabel;
}

public byte[] getSlabel(){
     return this.slabel;
}

在我的控制器中,我将表示我的安全标签的十六进制字符串转换为byte [],将setSlabel转换为该byte [],并通过Spring Data Repository .save(entity)保存记录。保存该记录后,db2驱动程序将引发错误:

  

SQLCODE = -20402 SQLSTATE = 42519。

此错误代码表示在没有必需的DB2SECURITYLABEL的情况下保存记录。

假设:

  • 我可以通过命令行使用相同的方法在此表中插入/选择 安全标签。插入schema.table(field1,slabel)值 (123,x' FFF01010101000CABBBBFFF')< -not我的真实标签。我可以选择通过命令行和我的应用程序插入的记录。
  • 我可以使用DB2SECURITYLABELS检索现有记录 并使用我的应用程序将标签读作byte []和十六进制字符串。
  • 我相信我正在插入正确的标签。我已经验证了字节[] 我申请的对象是正确的。我能够插入一个 通过命令行使用有效的DB2SECURITYLABEL进行记录,以及 在我的申请中检索它;两个字节[]为 DB2SECURITYLABEL是相同的,并转换回相同的十六进制 字符串。

有没有人在Java对象中将DB2SECURITYLABEL设置为byte []并使用Hibernate将数据保存到db2数据库?

我感谢任何帮助。

0 个答案:

没有答案