如何使用Spring Data JPA在实体中映射Oracle对象类型?
这个问题特别涉及到使用Spring Data JPA在实体中映射Oracle对象类型。 other question没有帮助详细解释问题。如何使用Spring Data JPA在实体中映射Oracle对象类型?
因此,这里有以下细节:
我无法找到实体有关映射的Oracle对象类型信息与Spring JPA的数据无论是在春季数据JPA参考,也没有在其他任何搜索结果的对象。
场景:
比方说,我有以下date_typ甲骨文类型。
CREATE TYPE date_typ AS OBJECT (
month VARCHAR2(2),
day VARCHAR2(2),
year VARCHAR2(4),
extension VARCHAR2(10),
MEMBER FUNCTION getFullDate RETURN VARCHAR2
);
CREATE TYPE BODY date_typ AS
MAP MEMBER FUNCTION getFullDate RETURN VARCHAR2 AS
BEGIN
return month || day || year;
END getFullDate;
END;
在Oracle数据库中的表
现在,假设注册,其中一列是上述date_typ
Column Type
REG_ID VARCHAR2(25) primary key
FIRSTNAME VARCHAR2(30) not null
LASTNAME VARCHAR2(30) not null
MIDDLEINIT VARCHAR2(10)
REQUESTEDDATE DATE_TYP
...
...
的现在,我需要将上面列在实体映射
@Entity
@Table(name = "REGISTRATION", schema = "accounts")
public class RegistrationEntity {
@Id
@Column(name = "REG_ID")
private String registrationId;
@Column(name = "FIRSTNAME", nullable = false)
private String firstName;
@Column(name = "LASTNAME", nullable = false)
private String lastName;
@Column(name = "MIDDLEINIT")
private String middleInitial;
requestedDate ???
}
在Spring J中,如何将requestedDate
映射到DATE_TYP(oracle对象类型)的REQUESTEDDATE
列PA?
注:我使用Hibernate作为持久性提供者。
This answer states, that there is no official support in JPA for Oracles Object Types, but support for it in Eclipse Link。我想这意味着Hibernate没有支持这个功能。
Spring数据并没有真正涉及到这个,因为它只是使用JPA实现将enities映射到数据库。 Spring Data提供的转换和投影仅在将输入参数/输出值传递给JPA提供者或从JPA提供者获取它们之后才转换。
谢谢仁。你的回答有助于理解问题和解决方案。为实现UserType而提供的链接在一定程度上有所帮助。我偶然发现了这个链接:http://blog.xebia.com/understanding-and-writing-hibernate-user-types/ - 这有助于更好地理解这个概念。无论如何,我接受你的答案。 –
[Java中的Oracle数据库对象类型导入]的可能重复(https://stackoverflow.com/questions/14600155/oracle-database-object-type-import-in-java) – danihp