Hibernate базовый объект для Etities, которые могут иметь общие свойства - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть несколько таблиц в БД Oracle, и мне нравится выполнять обратный инжиниринг.Каждое имя столбца таблицы БД имеет уникальные инициалы имени таблицы в качестве префикса, например, «ID» как «C_ID», «C_LAST_UPDATED» и т. Д. Во-вторых, существует несколько столбцов, которые являются общими в каждой таблице, например, «X_ID», «X_LAST_UPDATED», где «X"это инициалы таблицы.

Мой вопрос заключается в том, можно ли создать базовую сущность, которая содержит общие свойства, такие как id, последний раз обновленный для вышеупомянутых таблиц?

Заранее спасибо

РЕДАКТИРОВАТЬ:

До сих пор я пытался создать BaseEntity, но, похоже, он не работает, пока сгенерированный код решает проблему, о которой я упоминал ранее, то есть общие свойства имеют разные имена столбцов в каждой таблице.

@MappedSuperclass
public abstract BaseEntity  implements java.io.Serializable
{
    @Id
    @Column(name = "ID", unique = true, nullable = false, precision = 22, scale = 0)
    private BigDecimal ID ;

   @Temporal(TemporalType.DATE)
    @Column(name = "INDATE", nullable = false, length = 7)
    private Date INDATE;


//--- Getters & Setters ---
}


@Entity
@Table(name = "TABLE1", schema = "TEMP_1")
public class Entity1 extends BaseEntity 

 {
    @Id
    @Column(name = "T1_ID", unique = true, nullable = false, precision = 22, scale = 0)
    private BigDecimal ID;

   @Temporal(TemporalType.DATE)
    @Column(name = "T1_INDATE", nullable = false, length = 7)
    private Date  INDATE;


//--- Getters & Setters ---
}


@Entity
@Table(name = "TABLE2", schema = "TEMP_1")
public class Entity2 extends BaseEntity 

 {
    @Id
    @Column(name = "T2_ID", unique = true, nullable = false, precision = 22, scale = 0)
    private BigDecimal ID;

   @Temporal(TemporalType.DATE)
    @Column(name = "T2_INDATE", nullable = false, length = 7)
    private Date  INDATE;


//--- Getters & Setters ---
}

Ответы [ 2 ]

0 голосов
/ 14 февраля 2012

Я думаю, вы можете использовать javax.persistence.MappedSuperclass . Класс, помеченный этой аннотацией, не имеет отдельной таблицы и может содержать отображение на общие поля. Я не думаю, что ваш обратный инструмент engenireeng поможет, и вы должны создать его вручную.

0 голосов
/ 14 февраля 2012

Существует несколько методов наследования в спящем режиме, посмотрите их.

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/inheritance.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...