powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как Hibernate формирует отношение таблиц на классы java?
8 сообщений из 8, страница 1 из 1
Как Hibernate формирует отношение таблиц на классы java?
    #39682261
artur1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример:
List<Subdivision> subdivision = session.createQuery(sql).list();
На сколько я знаю в классе Subdivision должен быть конструктор по умолчанию – он есть.
У меня в классе Subdivision есть 3 поля:
1)
@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private int idSubdivision;
2)
@Column(name = "nameSubdivision", unique = true)
private String nameSubdivision;
3)
@Transient
VBox vbox; (javafx.scene.layout.VBox)

Первые два поля заполняются с помощью session.createQuery(sql).list();
Но мне нужно чтобы в классе Subdivision заполнялось третье поле vbox. Оно у меня заполняется на основе значения поля nameSubdivision. В базе данных естественно поле vbox нет поэтому оно не заполняется.
Конечно я могу пройтись по сформированному List<Subdivision> subdivision и это поле заполнить.
Но я хотел все сделать за один раз. Можно ли получить доступ в session.createQuery(sql).list() – и переопределить его чтоб он учитывал мое поле
...
Рейтинг: 0 / 0
Как Hibernate формирует отношение таблиц на классы java?
    #39682322
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artur1234,

Ну дак вы посмотрите в справке или сети работу с полями @Transient.
Пример, в базе храним год рождения. А это поле выдает возраст.
...
Рейтинг: 0 / 0
Как Hibernate формирует отношение таблиц на классы java?
    #39682544
artur1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@Transient. - эта инструкция которая позволяет исключить поле класса для поиска его соответствия в таблице базы данных. Так как у меня поле VBOX - элемент управления - который заполняется различными красивыми надписями а затем выводится. Естественно в таблице sql - такого поля нет. Поэтому Hibernate при создании класса subdivision это поле и не заполняет об этом и указывает инструкция @Transient.

Я хотел узнать как вообще происходит формирование класса сущности в List<Subdivision> subdivision = session.createQuery(sql).list(). Насколько я знаю условия в классе должен быть конструктор по умолчанию без параметров и геттеры и сеттеры.

У меня поле VBOX формируется на основе значения поля nameSubdivision. Конструктор по умолчанию Hibernate при создании класса запускает это я проверял. А вот сеттеры нет.

В сетторе для поле nameSubdivision я бы мог заполнить поле vbox но Hibernate его не запускает это я проверял.

Поэтому я и хочу узнать как происходит формирования класса сущности что конкретно запускает Hibernate - конструктор по умолчанию но там нет параметров, сеттеры не запускаются. Меня интересует именно та часть где значение полей из базы данных переносится в поля класса - это точно не конструктор по умолчанию и не сеттеры.
...
Рейтинг: 0 / 0
Как Hibernate формирует отношение таблиц на классы java?
    #39682547
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artur1234Поэтому я и хочу узнать как происходит формирования класса сущности что конкретно запускает Hibernate - конструктор по умолчанию но там нет параметров, сеттеры не запускаются. Меня интересует именно та часть где значение полей из базы данных переносится в поля класса - это точно не конструктор по умолчанию и не сеттеры.
1. Не путайте классы и объекты.
2. Конкретная реализация зависит от маппинга и настроек. Можно замапить свойства, тогда писать и читать значения ORM будет через свойства. В поля можно писать напрямую через рефлексию, например. Ещё используются разные инструменты модификации байткода, такие как ASM или CGLIB (в старых версиях)
...
Рейтинг: 0 / 0
Как Hibernate формирует отношение таблиц на классы java?
    #39682605
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artur1234,
Вы меньше говорите и больше пишите кода.
Вы пример с Transient hello world сделали?
Нет. А разговоров второй день.
Сначала букварь и hello world. А потом обсуждение.
...
Рейтинг: 0 / 0
Как Hibernate формирует отношение таблиц на классы java?
    #39682738
artur1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прошения но хочу уточнить.
Я во первых начинающий программист.

Сейчас пишу программу на javaFx которая выводит данные из таблицы базы данных в элемент управления javafx.scene.control.TableView.

В TableView есть один столбец в нем есть поле Vbox которое содержит надпись(наименование подразделения), сепаратор и рисунок.

Есть база данных и в ней таблица Subdivision и соответственно есть такой же класс в java.
В этом классе как я уже говорил есть три поля idSubdivision, nameSubdivision, vbox.
В таблице Subdivision есть только два поля idSubdivision, nameSubdivision - поля vbox соответственно нет.

По моему алгоритму в таблице Subdivision хранятся наименование подразделений далее с помощью List<Subdivision> subdivision = session.createQuery(sql).list();- все это закачивается в объекты класса java. А вот далее эти объекты выводятся в TableView - причем только поле vbox из класса - которое не заполняется (пустое).

Вы господа товарищи толком так и не ответили как это поле можно заполнить. По поводу мапинга то он есть и все работает. По поводу Transient hello world сделали? - ну если бы я это не сделал то куда мне до динамического формирования таблицы из базы данных.

Короче вы бы как сами решили такую задачу если вам нужно вывести в таблицу одновременно надпись (наименование подразделение), сепоратор и рисунок и все это содержится в vbox. То есть в классе должно быть поле vbox. А дальше оно заполняется вот так:
TableColumn vbox = new TableColumn("vbox");
vbox.setCellValueFactory(
new PropertyValueFactory<Subdivision,String>("vbox")
);

tableviewSubdivision.setItems(subdivision); где subdivision - это List<Subdivision> subdivision = session.createQuery(sql).list() - только вот с незаполненным полем vbox
...
Рейтинг: 0 / 0
Как Hibernate формирует отношение таблиц на классы java?
    #39682772
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artur1234,
Про MVVM и биндинг для javaFX слышал?
Я бы с этого начал. А ты как хочешь.
...
Рейтинг: 0 / 0
Как Hibernate формирует отношение таблиц на классы java?
    #39682871
artur1234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по пробую через биндинг
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как Hibernate формирует отношение таблиц на классы java?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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