如何使用hibernate对工程师进行逆转以获取映射的超类

时间:2017-07-13 14:41:13

标签: hibernate reverse-engineering mappedsuperclass

我有六个表有很多共同的字段。

十年前,我为Hibernate Reverse Engineering指定了一些东西来创建一个映射的超类和六个扩展该类的类。

我可以手动完成,但我确信功能必须仍然存在。

经过两个小时的谷歌搜索并看到手工制作的pojos的例子后,我无法找到如何去做这件事。

1 个答案:

答案 0 :(得分:0)

我从未弄明白。相反,我编写了一个接口和一个抽象类,然后修改了生成的代码。

不漂亮,但实际上对我有更大的好处。

奇怪的是,我扩展的类必须为每个属性设置一个setter方法,否则应用程序无法加载。

我创建了刚刚抛出UnsupportedOperationException

的setter

现在,如果可以在这个项目中获得两个源代码树,并且hibernate编译生成的目标类没有这些废话。

apply() {
FILE=$1
echo $FILE
return
#https://stackoverflow.com/questions/11694980/using-sed-insert-a-line-below-or-above-the-pattern
#https://stackoverflow.com/questions/148451/how-to-use-sed-to-replace-only-the-first-occurrence-in-a-file
sed -i -e "0,/implements/{s/implements/extends AbstractDemand implements/}" $FILE

sed -i -e "3i  \
import com.techwanker.diamond.planning.AbstractDemand;\\n\
import com.techwanker.diamond.planning.AllocationMode;\\n\
import com.techwanker.diamond.planning.demand.DemandType;\\n\
" $FILE 
}

find_file() {
   file=`locate $1 | grep "^$PWD" | grep $1\$`
   return $file


rm -rf src/main/java
mvn hibernate3:hbm2java
apply `find_file ApsDmdOo.java`
apply `find_file ApsDmdSs.java`
apply `find_file ApsDmdFc.java`



cp -r src/main/java-required/java/* src/main/java
cp -r target/generated-sources/* src/main/java
mvn install