|
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
|
||||||
Наследование jpa15.08.2017, 10:53. Показов 1993. Ответов 14
Метки нет (Все метки)
Всем привет! Хочу поинтересоваться. Допустим у меня есть класс A который является сущностью. Я хочу создать класс B как отдельная сущность и унаследовать класс А. При наследовании как известно для сущности В отдельная таблица создаваться не будет, и все дополнения к классу В повлияют на таблицу сущности А. Как сделать так чтобы сущность В при наследовании А, имела свою таблицу и не влияла на таблицу сущности А?
Я хочу чтобы ситуация была похожа на ту, когда мы создаем абстрактный класс и наследуемся от него используя анатацию @MappedSuperclass. Добавлено через 5 минут К примеру:
1
|
||||||
| 15.08.2017, 10:53 | |
|
Ответы с готовыми решениями:
14
Генерация классов доменов(JPA) JPA. Задание свойств соединения непосредственно в программе About JPA |
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 15.08.2017, 11:11 | |
|
на абстрактный класс
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) вообще чтобы разобраться в теме, достаточно было написать в гугл что-то типа "jpa inheritance table per class"
1
|
|
|
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
|
|
| 15.08.2017, 11:37 [ТС] | |
|
0
|
|
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 15.08.2017, 11:39 | |
|
0
|
|
|
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
|
|||||||
| 15.08.2017, 12:11 [ТС] | |||||||
|
там на обычный повесили и всё работает Добавлено через 2 минуты Решил протестить вот так:
0
|
|||||||
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 15.08.2017, 12:15 | |
|
Левиафам, то, что у вас корневой класс не абстрактый - ваше решение. В большинстве случаев там будет именно он.
1
|
|
|
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
|
|
| 15.08.2017, 12:26 [ТС] | |
|
neske, я пример сверху привел и пишет ошибку:
Cannot use identity column key generation with <union-subclass> mapping for: ru.ccsss.entities.Test.B не могу понять что он хочет((
0
|
|
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 15.08.2017, 12:29 | |
|
первичный ключ маппится единожды
0
|
|
|
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
|
|
| 15.08.2017, 12:31 [ТС] | |
|
0
|
|
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 15.08.2017, 12:33 | |
|
да, сравните даже с примером из той статьи, которую вы сами скинули
0
|
|
|
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
|
||||||
| 15.08.2017, 12:35 [ТС] | ||||||
|
neske, нвсё равно не получается
0
|
||||||
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 15.08.2017, 12:37 | |
|
0
|
|
|
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
|
|||||||
| 15.08.2017, 12:45 [ТС] | |||||||
|
вот ошибка если юзаю @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS).......с джоином просто поэксперементировал и забыл убрать))) org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.ini tializeBean(AbstractAutowireCapableBeanF actory.java:1628) at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.doC reateBean(AbstractAutowireCapableBeanFac tory.java:555) at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.cre ateBean(AbstractAutowireCapableBeanFacto ry.java:483) at org.springframework.beans.factory.suppor t.AbstractBeanFactory$1.getObject(Abstra ctBeanFactory.java:306) at org.springframework.beans.factory.suppor t.DefaultSingletonBeanRegistry.getSingle ton(DefaultSingletonBeanRegistry.java:23 0) at org.springframework.beans.factory.suppor t.AbstractBeanFactory.doGetBean(Abstract BeanFactory.java:302) at org.springframework.beans.factory.suppor t.AbstractBeanFactory.getBean(AbstractBe anFactory.java:197) at org.springframework.context.support.Abst ractApplicationContext.getBean(AbstractA pplicationContext.java:1081) at org.springframework.context.support.Abst ractApplicationContext.finishBeanFactory Initialization(AbstractApplicationContex t.java:856) at org.springframework.context.support.Abst ractApplicationContext.refresh(AbstractA pplicationContext.java:542) at org.springframework.boot.context.embedde d.EmbeddedWebApplicationContext.refresh( EmbeddedWebApplicationContext.java:122) at org.springframework.boot.SpringApplicati on.refresh(SpringApplication.java:737) at org.springframework.boot.SpringApplicati on.refreshContext(SpringApplication.java :370) at org.springframework.boot.SpringApplicati on.run(SpringApplication.java:314) at org.springframework.boot.SpringApplicati on.run(SpringApplication.java:1162) at org.springframework.boot.SpringApplicati on.run(SpringApplication.java:1151) at ru.ccsss.Application.main(Application.ja va:20) Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory at org.hibernate.jpa.boot.internal.EntityMa nagerFactoryBuilderImpl.persistenceExcep tion(EntityManagerFactoryBuilderImpl.jav a:967) at org.hibernate.jpa.boot.internal.EntityMa nagerFactoryBuilderImpl.build(EntityMana gerFactoryBuilderImpl.java:892) at org.springframework.orm.jpa.vendor.Sprin gHibernateJpaPersistenceProvider.createC ontainerEntityManagerFactory(SpringHiber nateJpaPersistenceProvider.java:60) at org.springframework.orm.jpa.LocalContain erEntityManagerFactoryBean.createNativeE ntityManagerFactory(LocalContainerEntity ManagerFactoryBean.java:353) at org.springframework.orm.jpa.AbstractEnti tyManagerFactoryBean.buildNativeEntityMa nagerFactory(AbstractEntityManagerFactor yBean.java:370) at org.springframework.orm.jpa.AbstractEnti tyManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:35 9) at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.inv okeInitMethods(AbstractAutowireCapableBe anFactory.java:1687) at org.springframework.beans.factory.suppor t.AbstractAutowireCapableBeanFactory.ini tializeBean(AbstractAutowireCapableBeanF actory.java:1624) ... 16 common frames omitted Caused by: org.hibernate.MappingException: Cannot use identity column key generation with <union-subclass> mapping for: ru.ccsss.entities.Test.B at org.hibernate.persister.entity.UnionSubc lassEntityPersister.<init>(UnionSubclass EntityPersister.java:82) at sun.reflect.NativeConstructorAccessorImp l.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImp l.newInstance(NativeConstructorAccessorI mpl.java:62) at sun.reflect.DelegatingConstructorAccesso rImpl.newInstance(DelegatingConstructorA ccessorImpl.java:45) at java.lang.reflect.Constructor.newInstanc e(Constructor.java:423) at org.hibernate.persister.internal.Persist erFactoryImpl.createEntityPersister(Pers isterFactoryImpl.java:96) at org.hibernate.persister.internal.Persist erFactoryImpl.createEntityPersister(Pers isterFactoryImpl.java:77) at org.hibernate.metamodel.internal.Metamod elImpl.initialize(MetamodelImpl.java:128 ) at org.hibernate.internal.SessionFactoryImp l.<init>(SessionFactoryImpl.java:297) at org.hibernate.boot.internal.SessionFacto ryBuilderImpl.build(SessionFactoryBuilde rImpl.java:452) at org.hibernate.jpa.boot.internal.EntityMa nagerFactoryBuilderImpl.build(EntityMana gerFactoryBuilderImpl.java:889) ... 22 common frames omitted Добавлено через 1 минуту вот код:
0
|
|||||||
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 15.08.2017, 13:02 | |
|
@GeneratedValue(strategy = GenerationType.TABLE)
говорят гугл решает многие проблемы, достаточно просто забить текст ошибки
1
|
|
|
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
|
||
| 15.08.2017, 13:18 [ТС] | ||
|
neske, спасибо большое бро!! Я до твоего сообщения это решил, но делал проделал с AUTO и заработало. Но ведь IDENTITY (на сколько помню) это такой тип генерации где ключ генерится базой и не ясно почему бы ей не генерить бы для двух таблиц свой собственный (может хибернейт так не может). Я на сколько помню тип TABLE это долгая генерация и возможно
Добавлено через 3 минуты
0
|
||
| 15.08.2017, 13:18 | |
|
Помогаю со студенческими работами здесь
15
JPA: @Basic JPA: Hibernate JPA Java EJB и JPA Аннотации JPA Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|