java - 使用休眠映射 oracle 的类型
问题描述
我在 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获取它?
解决方案
您将必须实现一个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)
其设置在准备好的语句中。
推荐阅读
- tableau-api - 在画面中划分两列
- opencv - 使用 cv.fisheye.initUndistortRectifyMap 进行校正变换
- asp.net - Asp.Net Identity - 登录后更新声明
- vba - 保护除少数单元格之外的工作簿
- java - 安全地将非泛型集合转换为同质泛型集合
- git - Github 如何允许合作者在不泄露密码的情况下下载带有配置数据的项目?
- c# - Async/Await 和实体框架 SQL 过程 UI 线程锁定
- azure - 从 Azure AD OAuth v2 令牌端点获取 client_credentials 令牌时,sub 和 oid 声明中有什么内容?
- powershell - 我损坏了我所有同事的 OneDrive
- ffmpeg - 如何阻止 ffmpeg 操作 mp3 元数据?