|
Как Hibernate формирует отношение таблиц на классы java?
|
|||
---|---|---|---|
#18+
Пример: 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() – и переопределить его чтоб он учитывал мое поле ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2018, 21:30 |
|
Как Hibernate формирует отношение таблиц на классы java?
|
|||
---|---|---|---|
#18+
artur1234, Ну дак вы посмотрите в справке или сети работу с полями @Transient. Пример, в базе храним год рождения. А это поле выдает возраст. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 07:40 |
|
Как Hibernate формирует отношение таблиц на классы java?
|
|||
---|---|---|---|
#18+
@Transient. - эта инструкция которая позволяет исключить поле класса для поиска его соответствия в таблице базы данных. Так как у меня поле VBOX - элемент управления - который заполняется различными красивыми надписями а затем выводится. Естественно в таблице sql - такого поля нет. Поэтому Hibernate при создании класса subdivision это поле и не заполняет об этом и указывает инструкция @Transient. Я хотел узнать как вообще происходит формирование класса сущности в List<Subdivision> subdivision = session.createQuery(sql).list(). Насколько я знаю условия в классе должен быть конструктор по умолчанию без параметров и геттеры и сеттеры. У меня поле VBOX формируется на основе значения поля nameSubdivision. Конструктор по умолчанию Hibernate при создании класса запускает это я проверял. А вот сеттеры нет. В сетторе для поле nameSubdivision я бы мог заполнить поле vbox но Hibernate его не запускает это я проверял. Поэтому я и хочу узнать как происходит формирования класса сущности что конкретно запускает Hibernate - конструктор по умолчанию но там нет параметров, сеттеры не запускаются. Меня интересует именно та часть где значение полей из базы данных переносится в поля класса - это точно не конструктор по умолчанию и не сеттеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 13:21 |
|
Как Hibernate формирует отношение таблиц на классы java?
|
|||
---|---|---|---|
#18+
artur1234Поэтому я и хочу узнать как происходит формирования класса сущности что конкретно запускает Hibernate - конструктор по умолчанию но там нет параметров, сеттеры не запускаются. Меня интересует именно та часть где значение полей из базы данных переносится в поля класса - это точно не конструктор по умолчанию и не сеттеры. 1. Не путайте классы и объекты. 2. Конкретная реализация зависит от маппинга и настроек. Можно замапить свойства, тогда писать и читать значения ORM будет через свойства. В поля можно писать напрямую через рефлексию, например. Ещё используются разные инструменты модификации байткода, такие как ASM или CGLIB (в старых версиях) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 13:25 |
|
Как Hibernate формирует отношение таблиц на классы java?
|
|||
---|---|---|---|
#18+
artur1234, Вы меньше говорите и больше пишите кода. Вы пример с Transient hello world сделали? Нет. А разговоров второй день. Сначала букварь и hello world. А потом обсуждение. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 14:34 |
|
Как Hibernate формирует отношение таблиц на классы java?
|
|||
---|---|---|---|
#18+
Прошу прошения но хочу уточнить. Я во первых начинающий программист. Сейчас пишу программу на 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 18:09 |
|
Как Hibernate формирует отношение таблиц на классы java?
|
|||
---|---|---|---|
#18+
artur1234, Про MVVM и биндинг для javaFX слышал? Я бы с этого начал. А ты как хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2018, 19:22 |
|
|
start [/forum/topic.php?fid=59&msg=39682322&tid=2121881]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 325ms |
total: | 487ms |
0 / 0 |