Наследование JPA требует идентификатор в подклассе

Я делаю это как это:

Statistics

и затем все, что я должен сделать, по моему мнению, добавляют {'active_tab': 'statistics'} к моему словарю контекста.

, Если Вы используете RequestContext , можно получить текущий путь в шаблоне как:

{{ request.path }}

И в Вашем представлении:

from django.template import RequestContext

def my_view(request):
    # do something awesome here
    return template.render(RequestContext(request, context_dict))

27
задан lostiniceland 12 September 2009 в 16:20
поделиться

2 ответа

I solved it myself by creating a MappedSuperclass

@MappedSuperclass
public abstract class EntityBase{
   @Id
   @GeneratedValue
   private int id;

   ...setter/getter
}

All entities are inheriting from this class. I am still wondering why the tutorials dont mention this, but maybe it gets better with the JPA 2 implementations.

36
ответ дан 28 November 2019 в 05:03
поделиться

JPA знает два разных способа применения наследования:

  • Наследование объединенной таблицы
  • Наследование одной таблицы

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

При наследовании объединенной таблицы каждый класс получает свою собственную таблицу, поэтому столбец дискриминатора не требуется.

Я думаю, ваша проблема в том, что вы смешали эти две концепции. Итак, либо:

  • определите столбцы дискриминатора и используйте ʻInheritanceType.SINGLE_TABLE`, а не используйте `@ Table` в подклассах
  • , либо используйте ʻInheritanceType.JOINED`, но don ' t указывает столбец дискриминатора, и значения!
4
ответ дан 28 November 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: