做示范中心项目时遇到的,类Teacher实现接口BusinessObject,在接口里用@hibernate.class,在类里用@hibernate.joined-subclass-key column="oid"和@hibernate.joined-subclass,执行ant任务时只生成了BusinessObject.hbm.xml,而且在里面没有关于Teacher的定义。为此折腾了好一阵,后在在网上找到一个贴子说的是同一个问题,还提供了一个patch,不过还没试好不好使,内容如下。(快该回家了,晚上继续写)
diff
-
u
-
1
-
b
-
p
-
r1.
20
HibernateTagsHandler.java
---
HibernateTagsHandler.java
14
Jun
2003
13
:
58
:
10
-
0000
1.20
+++
HibernateTagsHandler.java
3
Nov
2003
00
:
58
:
27
-
0000
@@
-
285
,
3
+
285
,
7
@@ public class HibernateTagsHandler
}
-
else
if
(clazz.getSuperclass()
!=
null
&&
clazz.getSuperclass().getQualifiedName().equals(typeName)) {
+
else
if
((clazz.getSuperclass()
!=
null
&&
+
clazz.getSuperclass().getQualifiedName().equals(typeName))
+
||
+
(getCurrentClass().isInterface()
&&
+
clazz.isImplementingInterface(typeName))) {
log.debug(
"
is a subclass
"
);
现在决定不用这个patch的方法了,改源码得重新build,而且以后就不能用通用包了。暂时拿抽象类代替接口吧,差不多。
本文转自博客园八进制的博客,原文链接:[Hibernate]xDoclet生成hbm的一个bug,如需转载请自行联系原博主。