Отображение гибернации (наследование) - PullRequest
0 голосов
/ 21 сентября 2011

Я пытаюсь отобразить некоторые объекты в Hibernate.Одним из таких объектов является отец, а другие дети.Другими словами, они реализуют наследование.Отец выглядит следующим образом:

public class Person {

    private String id;
    private String name;
    private String surname;
    getters and setters ;
}

и дети ...

public class Employee {
      private BigDecimal salary;
      private String seccion;
      private Employee employee;
      private  Customer customer;

      getters and setters
}

public class Customer {
     private BigDecima CreditLimit;

     getter and setter
}

Тогда ... Я хочу отобразить эти классы в следующей схеме базы данных ...

Таблица Персона ID / ИМЯ / ФАМИЛИЯ / ID_EMPLOYEE / ID_CUSTOMER

Идентификатор сотрудника / SALARY / SECCION

Идентификатор клиента_PERSON / CREDIT_LIMIT

Моя идея - каждая персона может бытьне клиент / работник.Другими словами, Customer и Employee являются свойствами Person, но эти свойства будут храниться в таблицах независимых данных в базе данных.

Для получения кредитного лимита персоны я могу сделать persona.getCustomer (). GetCreditLimit ();

Всегда проверяю, является ли Клиент клиентом или нет.

Надеюсь, вы поможете мне и извините, мой английский довольно плохой.Я из Аргентины.

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

Николас

Ответы [ 2 ]

0 голосов
/ 21 сентября 2011

То, что вы ищете, известно как Polymorphic Mapping, пример здесь - это то, что вам нужно.

0 голосов
/ 21 сентября 2011

Вы можете отобразить это с двумя One-To-One ассоциациями на Person.

В качестве примечания: если у вас есть контроль над этой схемой, я бы рекомендовал перейти к Inheritance Mapping и Таблица на подкласс , используя type столбец как дискриминатор на личном столе. Здесь - учебник по отображению наследования.

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