Oracle Hibernate将两个属性映射到一列

Oracle Hibernate将两个属性映射到一列,oracle,hibernate,hibernate-mapping,Oracle,Hibernate,Hibernate Mapping,我有一个从XSD生成的对象,所以我不能更改它。其中有一个字符串日期和一个字符串时间(表示一天中没有日期的时间) 日期=年月日 时间=小时:毫米:秒:毫米 在OracleDB中,我不想将它们表示为VARCHAR。我想使用DATE或DATETIME。因此,我需要将日期+时间映射到一个列DATETIME 这是不可能的。您可以将两列映射到单个属性(使用复合或用户类型),但不能反过来映射 在映射文件中两次使用相同的列名通常会导致奇怪的异常(索引超出范围) 我将在数据库中使用两列。使用用户类型将它们转换为日

我有一个从XSD生成的对象,所以我不能更改它。其中有一个字符串日期和一个字符串时间(表示一天中没有日期的时间)

日期=年月日
时间=小时:毫米:秒:毫米


在OracleDB中,我不想将它们表示为
VARCHAR
。我想使用
DATE
DATETIME
。因此,我需要将日期+时间映射到一个列DATETIME

这是不可能的。您可以将两列映射到单个属性(使用复合或用户类型),但不能反过来映射

在映射文件中两次使用相同的列名通常会导致奇怪的异常(索引超出范围)


我将在数据库中使用两列。使用用户类型将它们转换为日期类数据类型。

创建一个包含基于这两个字符串的实际日期值的字段并映射该字段如何?也许你可以给你的对象子类化,或者注入这样一个字段?我不能。该对象是从XSD生成的,并且应用了hbm.xml映射,因此需要在hbm.xml中处理它。最后,我通过在Oracle中添加一个虚拟列解决了这个问题:
STARTTIMESTAMP TIMESTAMP始终生成为(TO_TIMESTAMP(STARTDATE | |‘|‘| STARTTIME,'YYYY-MM-DD HH24:MI:SS.FF'))VIRTUAL