powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Выборка по @DiscriminatorColumn(name="type")
25 сообщений из 32, страница 1 из 2
Выборка по @DiscriminatorColumn(name="type")
    #39860837
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть вот такой абстракт класс

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
@Entity
@Data
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="type",discriminatorType = DiscriminatorType.STRING)
public abstract class Question {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String text;
    @OneToMany(mappedBy = "question")
    private List<Answer> answerList;
    @Enumerated(EnumType.STRING)
    private Difficult difficult;

}



есть его наследник

Код: java
1.
2.
3.
4.
5.
6.
@Data
@Entity
@DiscriminatorValue("OOP")
public class QuestionOOP extends Question {

}



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

Код: java
1.
2.
3.
4.
@Repository
 public interface QuestionRepo extends JpaRepository<Question,Long> {
List<Question> findAllByType(String t);
}



ругается на этот метод

Код: html
1.
2.
Failed to create query for method public abstract java.util.List com.alekseev.Javatesting.Repository.QuestionRepo.findAllByType(java.lang.String)! No property type found for type Question!
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1778) ~[spring-beans-5.1.9.RELEASE.jar:5.1.9.RELEASE]



хотя в таблице это поле есть и в сущностях описано- не пойму чего ему не хватает
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860861
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

скорее всего Discriminator Column не является полем для хибера. Никогда на Spring Data наследование не реализовывал.

раз уж ты полез в извращения то можно добавь свой маппинг и ищи по нему.

Код: java
1.
2.
    @Column (insertable = false, updatable = false)
    private String type;



Либо попробуй интерфейсы переписывать, под конкретные реализации JpaRepository<QuestionOOP> JpaRepository<QuestionRepo>

Вариантов тьма :) , только нужно найти хоть один рабочий. Ну а лучше spring-data reference почитать, что они пишут насчет схем наследования.
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860864
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0раз уж ты полез в извращения+1
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860889
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0asv79,

скорее всего Discriminator Column не является полем для хибера. Никогда на Spring Data наследование не реализовывал.

раз уж ты полез в извращения то можно добавь свой маппинг и ищи по нему.

Код: java
1.
2.
    @Column (insertable = false, updatable = false)
    private String type;



Либо попробуй интерфейсы переписывать, под конкретные реализации JpaRepository<QuestionOOP> JpaRepository<QuestionRepo>

Вариантов тьма :) , только нужно найти хоть один рабочий. Ну а лучше spring-data reference почитать, что они пишут насчет схем наследования.
если делать под каждый класс свою реализацию интерфейса - то теряется смысл наследования)

поле Type -из той же оперы,тогда проще вообще все обьеденить в одну таблицу и вместо наследования добавить какой то enum и по нему уже дергать,что в принципе наверно и будет самым оптимальным решением

но я уверен есть способ дергать и по типу,который мы сами прописваем вот тут @DiscriminatorValue("OOP")
а так по логике у нас же нет поля такого в сущности ,но есть в таблице видимо тут надо действовать

тоесть вот руками если я напишу запрос - он спокойно отрабатывает - потому что физически это поле есть в таблице
а вот как прописать правильный интерфейс-надо думать
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860896
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0asv79,



Код: java
1.
2.
    @Column (insertable = false, updatable = false)
    private String type;



.
интересный вариант ,надо опробовать - сможем ли мы таким образом хибер обмануть)
ведь фатически это поле у нас будет null
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860900
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79если делать под каждый класс свою реализацию интерфейса - то теряется смысл наследования)а ООП в модели не нужен.
А далее идут стримы и коллекции.
Ты где там ООП увидел?
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860901
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот эта строчка интересная

No property type found for type Question


Question уже и есть type

хмм
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860906
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpasv79если делать под каждый класс свою реализацию интерфейса - то теряется смысл наследования)а ООП в модели не нужен.
А далее идут стримы и коллекции.
Ты где там ООП увидел?
моя задумка проста
я решил написать полноценный веб проект для тестирования джуниор джава

есть класс вопрос
от него наследуются вопрос ООП
вопрос МНогопоточка и тд
я хочу сделать это как одну таблицу,чтобы хибер сам раскидывал вопросы по типам

конечно можно сделать сущность вопрос и поле типа enum ,где прописывать к какой группе вопрос относится
скорей всего если не получится норм описать интерфейс поика по типу ,то я так и сделаю)_
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860911
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79есть класс вопрос
от него наследуются вопрос ООПдвойка по моделированию предметной области
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39860995
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpasv79есть класс вопрос
от него наследуются вопрос ООПдвойка по моделированию предметной области
это с чего бы это))
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861008
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Моделируют люди не программисты.
Там сущности и отношения.
Прогеры позже приходят и натягивают модель от бизнес аналитика на хибер.
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861015
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0,
Код: java
1.
2.
  @Column (insertable = false, updatable = false)
    private String type;



вот этот вариант сработал)
странно я думал все же хибер немного умней и распознает заглушку и выдаст nullPointer

зато все работает теперь так как я и задумал,нужный класс


но я думаю предпочтительней будет сделать Enum поле с типом вопросов,так легче будет в базе сохранять ,иначе мне при создании записи придется каким то образом делать класс определенного типа- что как бы весьма затруднительно будет сделать из формы инпут
как я укажу какой класс я хочу создать QuestionOPP или QuestionTHREAD
а так просто set.ROLE(ROLE.OOP) и мудрить не надо)
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861019
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpasv79,
Моделируют люди не программисты.
Там сущности и отношения.
Прогеры позже приходят и натягивают модель от бизнес аналитика на хибер.
да я принял решение отказаться от наследования в таблах,так как у меня возникнут проблемы при вводе вопросов из админки
так как я при сохранинии буду просто обязан создать экзмепляр конкретного наследника-что автоматом вызывает проблемы)
мне придется прописывать
Question a=new QuestionOOP();
и так для каждого вида
либо делать отдельный контроллер под каждый вид,что в итоге вместо упрощения еще больше код утяжелит

короче сделаю енум ,который будет описывать що це за вопрос и одна общая табла под них)
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861021
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

Хибернат использует Discriminator Column при обновлениях, а "лишний" маппинг для type это заглушка для выполнения твоих запросов. По сути ни на что не влияет, так как не участвуют в insert/update-ах.

Если ты будешь json использовать при отправке своих форм, то там тоже есть наследование (по аналогии Discriminator Column). Вообщем вариантов по реализации много. Правильно\неправильно это все субъективно.
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861027
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0asv79,

Хибернат использует Discriminator Column при обновлениях, а "лишний" маппинг для type это заглушка для выполнения твоих запросов. По сути ни на что не влияет, так как не участвуют в insert/update-ах.

Если ты будешь json использовать при отправке своих форм, то там тоже есть наследование (по аналогии Discriminator Column). Вообщем вариантов по реализации много. Правильно\неправильно это все субъективно.
вообще хотелось сделать с наследованием,но будут траблы при создании записей как мне из UI указать какого класса этот вопрос
куда как проще сделать енум
взять его валью вывести лист с этими валью в типлейт и тыркнув в нужно приствоится нужный тип)
мне кажется все же так проще ,легковесней и читаемей ,ну и в принципе расширяемост норм-добавил новый тип в енум и автоматом все везде подхватится ,даже в UI
а при наследовании придется интрефейс менять

короче енум ,так енум)
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861030
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0
Если ты будешь json использовать при отправке своих форм, т
я бы рад,но штмл формы не умееют джейсон отправлять
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861058
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь понял зачем в ТЗ наследование? Я не про базу сейчас а про сущности
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861061
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никКто-нибудь понял зачем в ТЗ наследование? Я не про базу сейчас а про сущности
да по сути не зачем,я убрал уже,заменил на Enum
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861067
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79забыл никКто-нибудь понял зачем в ТЗ наследование? Я не про базу сейчас а про сущности
да по сути не зачем,я убрал уже,заменил на Enumбд всегда главнее, а в ней нет наследования. Вот и подстраивайся по нее родимую.
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861115
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
4.
5.
<#list type as types>
<div>
    <input type="radio" name="${types}" id="${types}"><label>${types}</label>
</div>
</#list>


кто нибудь знает как сделать так чтобы без js в этой конструкции выбиралось только одно значение?э
или в листе это не возможно?
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861122
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79кто нибудь знает как сделать так чтобы без js в этой конструкции выбиралось только одно значение?
элементарно - погуглить про <input type=radio/> и быстро обнаружить концепцию "радио-группы" ;)
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861293
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaasv79кто нибудь знает как сделать так чтобы без js в этой конструкции выбиралось только одно значение?
элементарно - погуглить про <input type=radio/> и быстро обнаружить концепцию "радио-группы" ;)
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861296
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpasv79пропущено...

да по сути не зачем,я убрал уже,заменил на Enumбд всегда главнее, а в ней нет наследования. Вот и подстраивайся по нее родимую.
не в данном конкретном случае)тут БД исполняет роль авоськи тоесть круд операции и ничего более
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861322
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,
Ты еще скажи CRUD байтов)))) LOL.
А у железнодорожников CRUD колесных пар.
Это совсем меняет дело)))
...
Рейтинг: 0 / 0
Выборка по @DiscriminatorColumn(name="type")
    #39861337
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpasv79,
Ты еще скажи CRUD байтов)))) LOL.
А у железнодорожников CRUD колесных пар.
Это совсем меняет дело)))
вам с вадей надо пожениться))вы достали со своими базами)
у меня все прекрасно через хибер и я не собираюсь на таблицу из 2 мб парить себе мозг,потому что там чтобы ты не делал будет производительность ок

причем ладно бы там процесс выборки был какой то экстремально быстрый
это же будет медленно- человек ответил на вопрос-думал минуту-жмакнул кнопку ему новый вопрос с базы вытянулся

тоесть говорить о базе в контексте моего ТЗ просто глубо,так как она лишь картофельный мешок для хрананения картошки и все ее функции заключатся в том чтобы 1 раз принять ворпосы и потом их отдавать ,никаких других операций не предусмотрено )


пс.начинаю понимать наших ПМ,которые ходят и у них волосы дыбом)они разрабу говорят в базе будут лежать текст вопросы,он какую то дичь про байты затирает))))
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Выборка по @DiscriminatorColumn(name="type")
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]