Как я могу поменять Инженера с Hibernate, чтобы получить сопоставленный суперкласс

У меня есть шесть таблиц, которые имеют много общих полей.

Десять лет назад я указал что-то в Hibernate Reverse Engineering, чтобы создать сопоставленный суперкласс и шесть классов, расширяющих этот класс.

Я мог бы сделать это вручную, но я уверен, что возможность все еще должна быть там.

После двух часов поиска в Google и просмотра примера созданных вручную поно, я не могу найти способ отомстить за это.

1 ответ

Я так и не понял это. Вместо этого я написал интерфейс и абстрактный класс, а затем изменил сгенерированный код.

Не очень, но это на самом деле имеет больше преимуществ для меня.

Как ни странно, класс, который я расширяю, должен иметь метод установки для каждого свойства, иначе приложение не загружается.

Я создал сеттеры, которые просто выбрасывают UnsupportedOperationException

Теперь, если бы можно было просто получить два исходных дерева в этом проекте и получить целевые классы, сгенерированные hibernate-компиляцией без этой чепухи.

apply() {
FILE=$1
echo $FILE
return
#https://stackru.com/questions/11694980/using-sed-insert-a-line-below-or-above-the-pattern
#https://stackru.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
Другие вопросы по тегам