这个问题与使用 Spring Data JPA 在实体中映射 Oracle 对象类型特别相关。另一个问题无助于详细解释问题。
所以下面是详细信息:
我在 Spring Data JPA Reference 和任何其他搜索结果中都找不到与使用 Spring Data JPA 在实体对象中映射 Oracle 对象类型相关的信息。
设想:
假设我有以下date_typ Oracle 类型。
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 数据库表中,比如 REGISTRATION,其中一列是上面的 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 JPA 中将 映射requestedDate
到DATE_TYP(oracle 对象类型)的REQUESTEDDATE
列?
注意:我使用 Hibernate 作为持久性提供程序。