Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JPA наследование 
V
    Опции темы
GZep
Дата 28.6.2011, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Здравствуйте.

Есть сущности:
  • Post
  • Page
  • Project
  • и т.д.

Они все должны наследоваться от абстрактной сущности Data.

Код

public abstract class Data extends Model {

    @Required
    public String type;

    @Required
    public String title;

    @Required @As("yyyy-MM-dd")
    public Date postedAt;

    @Lob
    @Required
    @MaxSize(10000)
    public String content;

    @Required
    @ManyToOne
    public User author;

    public Data(String type, User author, String title, String content) {
        this.type = type;
        this.author = author;
        this.title = title;
        this.content = content;
        this.postedAt = new Date();
    }

}

@Entity
public class Post extends Data {

    public Post(User author, String title, String content) { 
        super("post", author, title, content);
    }

}


Работаю с Playframework.

Не пойму как сделать, чтобы таблицы создавались только для сущностей, но не для абстрактного Data.

Наследование нужного потому, что надо поле id чтобы у всех сущностей было одно.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
jk1
Дата 28.6.2011, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 5
Всего: 75



Вот этот тип наследования для JPA создаст по одной таблице на каждый лист дерева наследования, не более того.

Код

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Data extends Model{
...


Это сообщение отредактировал(а) jk1 - 28.6.2011, 17:57


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
MisterCleric
Дата 29.6.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет
MappedSuperclass


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
GZep
Дата 1.7.2011, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Спасибо огромное! А вообще, по этой теме есть какой-нибудь материал для новичков/среднячков на русском. Инглиш читал, но не все усвоил на 100%.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Temdegon
Дата 1.7.2011, 02:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: нет
Всего: 9



Я толкового ничего не видел. Старьё, поверхностные обзоры и примеры "hello jpa". Вам оно не нужно. 
Возникает вопрос - спрашивайте на форуме или ищите в английских источниках ответы самостоятельно.
Если вы хотите что-то типа книжки, чтоб были рассмотрены все возможности в деталях на красивых примерах - читайте про hibernate, там все очень похоже.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0652 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.