为了让我的java代码更简单,我想将两行合并为一个,因为我真的需要这两个才能使用数据。休眠加入2行
比方说,那些都是我的表的字段:
ID, FIELD1, FIELD2, DISCRIMINATOR, VALUE
显然,ID是主键。 FIELD1和2让我们确定一个仅由DISCRIMINATOR和VALUE区分的2行的“组”(鉴别符指示数值代表的是什么)
我想每个“组”有一个POJO(其中FIELD1和2将被用作复合ID),如:
FIELD1, FIELD2, VALUE1, VALUE2
其中:
VALUE1 = VALUE用于鉴别器用于鉴别乙
甲VALUE2 = VALUE
在SQL中,我会要求它像这样:
SELECT a.FIELD1, a.FIELD2, a.VALUE as VALUE1, b.VALUE as VALUE2
FROM TABLE a, TABLE b
WHERE a.FIELD1 = b.FIELD1 and a.FIELD2 = b.FIELD2
AND a.DISCRIMINATOR = 'A'
AND b.DISCRIMINATOR = 'B'
不幸的是,我不知道如何使它在休眠,我现在一切准备困惑。
我宁愿将解决方案作为映射的XML,但如果没有选择,仍然会采用注解解决方案。
你在考虑表格。 Hibernate是一种ORM解决方案,可让您假装对象是Universe的中心。您应该根据对象来思考,或者将Hibernate用于Spring JdbcTemplate或iBatis等基于SQL的解决方案。 – duffymo 2013-03-01 15:05:56
谢谢,不幸的是,应用程序已经使用hibernate进行了很多处理,我无法控制为db和api所做的选择。尽管我会为未来的作品记住这一点。 – Schumi77 2013-03-01 15:25:12
它不一定是一个全或无解决方案。你不必强迫Hibernate做这一切。为什么不能直SQL在这里工作? – duffymo 2013-03-01 15:37:25