【问题标题】:Map oracle's type with hibernate使用休眠映射 oracle 的类型
【发布时间】:2021-05-07 13:24:16
【问题描述】:

我在 oracle 中声明了类型

CREATE OR REPLACE TYPE STATUS IS OBJECT
(
   status Number,
   tresc  Varchar2(32767)
)

和功能

Function Test_Status return STATUS IS
Begin
  RETURN new STATUS(2,'Test');
End;

是否可以在hibernate中声明这个类型并通过hibernate获取?

【问题讨论】:

    标签: java oracle hibernate jpa


    【解决方案1】:

    您将必须实现一个org.hibernate.usertype.CompositeUserType,它从 JDBC 将其读取到 Java 对象中。然后,您可以在模型中使用 Java 类型。

    根据 Oracle JDBC 驱动程序文档,Java 类型必须实现 java.sql.SQLData 接口:https://docs.oracle.com/javase/tutorial/jdbc/basics/sqlcustommapping.html

    然后您可以在用户类型中使用java.sql.ResultSet#getObject(int, java.util.Map<java.lang.String,java.lang.Class<?>>) 从结果集中提取对象类型,并在准备好的语句中使用java.sql.ResultSet#setObject(int, Object) 设置它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多