|
|
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Приветствую! Возможно- ли определить в отображаемых в структуру реляционной базы данных классах сущностей произвольные, не имеющие к БД прямого отношения поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 11:47 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
тут смотрите, вроде как аннотация @Transient . Сам никогда не юзал правда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 11:53 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Nixicаннотация @Transient +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 12:09 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
На всякий случай поясню, @Transient будет означать, что поле не будет персистентным, т.е. не будет сохраняться в БД. И соответственно не будет заполняться значением при получении объекта из БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 12:20 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
ivanov-voidВозможно- ли определить в отображаемых в структуру реляционной базы данных классах сущностей произвольные, не имеющие к БД прямого отношения поля? В зимнем проекте столкнулся с такой же проблемой. Хотел добавить дополнительные поля, скрыть некоторые и отдать клиенту. Вроде поборол, но это все так как-то неудобно, что перешел на связку POJO -> DTO. Если итог добавления новых полей именно в этом (дальше на клиента), то советую ввести DTO - очень просто, примитивно и есть полный контроль над заполнением структуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 13:45 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
IDVsbruckВ зимнем проекте столкнулся с такой же проблемой. Хотел добавить дополнительные поля, скрыть некоторые и отдать клиенту. Вроде поборол, но это все так как-то неудобно, что перешел на связку POJO -> DTO. Если итог добавления новых полей именно в этом (дальше на клиента), то советую ввести DTO - очень просто, примитивно и есть полный контроль над заполнением структуры. Это не обязательно DTO. Возможно какой-то агрегирующий класс со своими свойствами. Для начала нужно ответить на вопрос, если у сущности есть свойства, то по какой причине мы не храним их в базе. Из ответа на этот вопрос может оказатся очевидным как именно нужно разделить сущность и остальные данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 13:49 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Приветствую, Nixic! Приветствую, Blazkowicz! Приветствую, kiR@ch! Приветствую, IDVsbruck! Вобщем, всем подряд желаю здоровья, как говорится. :-) Большое спасибо за информацию- действительно, аннотация @Transient помогла: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Относительно связки POJO -> агрегирующий класс взял на заметку, спасибо. Возможно, перейдем на нее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2011, 14:22 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Дабы не плодить темы, спрошу здесь :) Есть у меня относительно большой Entity объект. Назовем этот класс Product/Продукт У Продукта есть много полей/свойств, каждый геттером и сеттером, ну в общем обычный Entity с почти 100 свойствами. Есть задача, сделать так называемые генерируемые свойства, которые будут содержать данные из нескольких полей, либо вычисления, либо конкатенированные строки, или же просто замена true/false значений на Да/Нет в строковом поле. В общем в Продукт это ну никак нельзя запихивать особенно если поля такие делать без @Transient. Они нужны временно, чтобы отображать на клиенте данные из Продукт и тут же поля с этими "вычисленными" данными. Получается ли так, что для этого мне нужно создать новый класс ProductDTO (а может и не DTO, не уверен, что это определение сюда подходит, может быть POJO?). Добавить в него(ProductDTO) все поля из Product, да, именно так все. Вот только не уверен, что будет удобно при добавлении полей в Product каждый раз проверять добавил ли я в ProductDTO это поле. Может тогда и не все они нужны... ? Добавить в него поля, которые будут в геттерах иметь некую логику связанную с "жонглированием" данными из других полей. Затем уже все поля отдавать клиенту в UI и "старые" и "новые из DTO". Но тут же думаю, что надо при работе пользователя с экземпляром ProductDTO, изменения вносить и в Product, а затем и в БД апдейт делать. Получается, нужна какая-то связь типа отдать данные в Entity, подобрать данные из Entity. Верная ли логика у меня вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 09:49 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
NixicВерная ли логика у меня вообще? MVC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 10:11 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
NixicДабы не плодить темы, спрошу здесь :) Дурацкая идея. Petro123MVC Или даже MVVM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 10:30 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
В общем задачу решил. Создал класс Код: java 1. добавил в него поле: Код: java 1. 2. 3. 4. 5. 6. Перед отдачей данных клиенту через org.apache.commons.beanutils.BeanUtils скопировал поля из одного бина в новый бин POJO. Добавил все новые POJO бины в новый List<> и отдал таблице вместо Листа с оригинальными бинами. В итоге в UI получил новый столбец в таблице с конкатенированными данными из полей Product. Вопрос только в том, а это и есть так называемый POJO класс? Или я неверно понял этот термин? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 10:43 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
NixicВ общем задачу решил. известно, что любое Г. будет работать. NixicPOJO бины есть термин масло-масляное. Nixic Или я неверно понял этот термин? неверно. У тебя просто наследник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 10:59 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Nixic Вопрос только в том, а это и есть так называемый POJO класс? Или я неверно понял этот термин? Скорее всего не верно понял. POJO это не паттерн. Это значит "чистый" Java класс, не связанный ни с какими фреймверками. То есть, этот класс можно использовать, как, например, в EJB, так и в Spring, как в Hadoop, так и в ORM. По большей части термин POJO был изначально антонимом к EJB. А потом появились аннотации и стало до конца не понятно, ломают ли они принцип POJO или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:00 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Petro123известно, что любое Г. будет работать. А почему сразу так категорично Г. ? Неправильный подход - это взять данные из бина, передать их посреднику, который их преобразует и передаст в новом виде в UI ? А как надо сделать чтобы было не Г. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:07 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
NixicА почему сразу так категорично Г. ? потому что у тебя на пост-ответ №1 и №2 нет реакции) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:10 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczПо большей части термин POJO был изначально антонимом к EJB. +1 POJO = bin но в разных технологиях. В устной и письменной речи всё меньше и меньше)) LOL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:12 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Petro123POJO = bin bin это кто? может bean? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:14 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Petro123NixicА почему сразу так категорично Г. ? потому что у тебя на пост-ответ №1 и №2 нет реакции) а какая реакция должна быть? "Ладно, пошел еще раз перечитаю мвси и посмотрю еще раз мввм" и свалить читать теорию без практики? Просто эти теории я читал, особенно MVC, а что толку, если ни разу их осознанно не реализовывал/применял и в терминах плаваешь, думал, хоть подскажут, а не будут называть Г-ном. Ладно, проехали, буду на своем Г. плыть дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:17 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNixic Вопрос только в том, а это и есть так называемый POJO класс? Или я неверно понял этот термин? Скорее всего не верно понял. POJO это не паттерн. Это значит "чистый" Java класс, не связанный ни с какими фреймверками. То есть, этот класс можно использовать, как, например, в EJB, так и в Spring, как в Hadoop, так и в ORM. По большей части термин POJO был изначально антонимом к EJB. А потом появились аннотации и стало до конца не понятно, ломают ли они принцип POJO или нет. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:17 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
am_sasabin это кто? может bean? да) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 11:18 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Как же лучше назвать этот класс? :) Чтобы название отображало назначение этого класса, в терминах присущих Java, Java объектам. По сути, да, он просто расширяет другой класс. Но другой класс это Bean, кроме того, это Entity класс. И в этом классе я собираюсь использовать операции с данными из Product, помещая результат в поля этого класса. Так же хочу объявить здесь некоторые классы, которые будут выполнять роль вспомогательных утилит, опять же для оперирования данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 12:00 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Petro123POJO = bin но в разных технологиях. В устной и письменной речи всё меньше и меньше)) LOL Нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 12:08 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
NixicКак же лучше назвать этот класс? :) Чтобы название отображало назначение этого класса, в терминах присущих Java, Java объектам. Вы написали реализацию, но ни слова о предназначении класса или о том как и кем он используется. Какую задачу класс решает? Кто использует этот класс? UI? Transaction Script? Controller? NixicПо сути, да, он просто расширяет другой класс. Почему используется наследование? NixicТак же хочу объявить здесь некоторые классы, которые будут выполнять роль вспомогательных утилит, опять же для оперирования данными. Что мешает тоже самое делать с сущностью? Вы столкнулись с проблемой Anemic Domain Model. Вы хотите живой объект с поведением, но по ORM привычке не знаете как же быть с Entity. Так что же мешает писать логику в Entity? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 12:13 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
Много интересного по теме https://www.google.com/search?q=business logic in jpa entity Рекомендую ознакомиться. Выбор правильного решения сильно зависит от того что именно мы пишем. Сервер? Жирный UI? ERP систему? С насколько сложными процессами? И т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 12:16 |
|
||
|
Hibernate: произвольные поля в отображенных в структуру БД объектах.
|
|||
|---|---|---|---|
|
#18+
NixicА как надо сделать чтобы было не Г. ? Сначала озвучить. Это ваш первый проект? Строго на EJB? Обычно первый проект делают так чтобы работало)). Иначе существует 15 способов делать эти самые проекты. Начали с темы-трупа про доп.поле и закончили вопросом об имени класса и архитектуре проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 12:58 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=59&tid=2122951]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 303ms |

| 0 / 0 |
