powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate: произвольные поля в отображенных в структуру БД объектах.
25 сообщений из 25, страница 1 из 1
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #37478505
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!

Возможно- ли определить в отображаемых в структуру реляционной базы данных классах сущностей произвольные, не имеющие к БД прямого отношения поля?
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #37478518
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут смотрите, вроде как аннотация @Transient .
Сам никогда не юзал правда.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #37478553
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixicаннотация @Transient
+1
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #37478573
kiR@ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На всякий случай поясню, @Transient будет означать, что поле не будет персистентным, т.е. не будет сохраняться в БД. И соответственно не будет заполняться значением при получении объекта из БД.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #37478741
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanov-voidВозможно- ли определить в отображаемых в структуру реляционной базы данных классах сущностей произвольные, не имеющие к БД прямого отношения поля?
В зимнем проекте столкнулся с такой же проблемой. Хотел добавить дополнительные поля, скрыть некоторые и отдать клиенту. Вроде поборол, но это все так как-то неудобно, что перешел на связку POJO -> DTO. Если итог добавления новых полей именно в этом (дальше на клиента), то советую ввести DTO - очень просто, примитивно и есть полный контроль над заполнением структуры.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #37478753
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckВ зимнем проекте столкнулся с такой же проблемой. Хотел добавить дополнительные поля, скрыть некоторые и отдать клиенту. Вроде поборол, но это все так как-то неудобно, что перешел на связку POJO -> DTO. Если итог добавления новых полей именно в этом (дальше на клиента), то советую ввести DTO - очень просто, примитивно и есть полный контроль над заполнением структуры.
Это не обязательно DTO. Возможно какой-то агрегирующий класс со своими свойствами. Для начала нужно ответить на вопрос, если у сущности есть свойства, то по какой причине мы не храним их в базе. Из ответа на этот вопрос может оказатся очевидным как именно нужно разделить сущность и остальные данные.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #37478825
Фотография ivanov-void
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, Nixic! Приветствую, Blazkowicz! Приветствую, kiR@ch! Приветствую, IDVsbruck!

Вобщем, всем подряд желаю здоровья, как говорится. :-)

Большое спасибо за информацию- действительно, аннотация @Transient помогла:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
@ Transient 
 private  String someField;

 public  String getSomeField() {
      return  someField;
}
 private   void  setSomeField(String someField) {
      this .someField = someField; 
}

...

Относительно связки POJO -> агрегирующий класс взял на заметку, спасибо. Возможно, перейдем на нее.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443865
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дабы не плодить темы, спрошу здесь :)

Есть у меня относительно большой Entity объект. Назовем этот класс Product/Продукт
У Продукта есть много полей/свойств, каждый геттером и сеттером, ну в общем обычный Entity с почти 100 свойствами.

Есть задача, сделать так называемые генерируемые свойства, которые будут содержать данные из нескольких полей, либо вычисления, либо конкатенированные строки, или же просто замена true/false значений на Да/Нет в строковом поле.
В общем в Продукт это ну никак нельзя запихивать особенно если поля такие делать без @Transient. Они нужны временно, чтобы отображать на клиенте данные из Продукт и тут же поля с этими "вычисленными" данными.

Получается ли так, что для этого мне нужно создать новый класс ProductDTO (а может и не DTO, не уверен, что это определение сюда подходит, может быть POJO?).
Добавить в него(ProductDTO) все поля из Product, да, именно так все. Вот только не уверен, что будет удобно при добавлении полей в Product каждый раз проверять добавил ли я в ProductDTO это поле. Может тогда и не все они нужны... ?
Добавить в него поля, которые будут в геттерах иметь некую логику связанную с "жонглированием" данными из других полей.
Затем уже все поля отдавать клиенту в UI и "старые" и "новые из DTO".

Но тут же думаю, что надо при работе пользователя с экземпляром ProductDTO, изменения вносить и в Product, а затем и в БД апдейт делать. Получается, нужна какая-то связь типа отдать данные в Entity, подобрать данные из Entity.

Верная ли логика у меня вообще?
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443875
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicВерная ли логика у меня вообще?
MVC
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443894
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicДабы не плодить темы, спрошу здесь :)
Дурацкая идея.

Petro123MVC
Или даже MVVM
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443902
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем задачу решил.
Создал класс
Код: java
1.
ProductPOJO extends Product

добавил в него поле:

Код: java
1.
2.
3.
4.
5.
6.
private String myNewString;

    public String getMyNewString() {
        myNewString = getShortName() + " | " + getName();
        return myNewString;
    }



Перед отдачей данных клиенту
через org.apache.commons.beanutils.BeanUtils скопировал поля из одного бина в новый бин POJO.
Добавил все новые POJO бины в новый List<> и отдал таблице вместо Листа с оригинальными бинами.

В итоге в UI получил новый столбец в таблице с конкатенированными данными из полей Product.

Вопрос только в том, а это и есть так называемый POJO класс? Или я неверно понял этот термин?
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443914
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicВ общем задачу решил.
известно, что любое Г. будет работать.
NixicPOJO бины
есть термин масло-масляное.
Nixic Или я неверно понял этот термин?
неверно. У тебя просто наследник.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443917
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic
Вопрос только в том, а это и есть так называемый POJO класс? Или я неверно понял этот термин?

Скорее всего не верно понял. POJO это не паттерн. Это значит "чистый" Java класс, не связанный ни с какими фреймверками.
То есть, этот класс можно использовать, как, например, в EJB, так и в Spring, как в Hadoop, так и в ORM.

По большей части термин POJO был изначально антонимом к EJB. А потом появились аннотации и стало до конца не понятно, ломают ли они принцип POJO или нет.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443927
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123известно, что любое Г. будет работать.

А почему сразу так категорично Г. ?
Неправильный подход - это взять данные из бина, передать их посреднику, который их преобразует и передаст в новом виде в UI ?
А как надо сделать чтобы было не Г. ?
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443928
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicА почему сразу так категорично Г. ?
потому что у тебя на пост-ответ №1 и №2 нет реакции)
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443930
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПо большей части термин POJO был изначально антонимом к EJB.
+1
POJO = bin но в разных технологиях.
В устной и письменной речи всё меньше и меньше)) LOL
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443932
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123POJO = bin
bin это кто? может bean?
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443936
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123NixicА почему сразу так категорично Г. ?
потому что у тебя на пост-ответ №1 и №2 нет реакции)
а какая реакция должна быть?
"Ладно, пошел еще раз перечитаю мвси и посмотрю еще раз мввм" и свалить читать теорию без практики?
Просто эти теории я читал, особенно MVC, а что толку, если ни разу их осознанно не реализовывал/применял и в терминах плаваешь, думал, хоть подскажут, а не будут называть Г-ном.
Ладно, проехали, буду на своем Г. плыть дальше.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443938
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczNixic
Вопрос только в том, а это и есть так называемый POJO класс? Или я неверно понял этот термин?

Скорее всего не верно понял. POJO это не паттерн. Это значит "чистый" Java класс, не связанный ни с какими фреймверками.
То есть, этот класс можно использовать, как, например, в EJB, так и в Spring, как в Hadoop, так и в ORM.

По большей части термин POJO был изначально антонимом к EJB. А потом появились аннотации и стало до конца не понятно, ломают ли они принцип POJO или нет.
Спасибо
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443939
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasabin это кто? может bean?
да)
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443970
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class ProductXXX? extends Product {

    private String myNewString;

    public String getMyNewString() {
        myNewString = getShortName() + " | " + getName();
        return myNewString;
    }

    public void setMyNewString(String myNewString) {
        this.myNewString = myNewString;
    }

}



Как же лучше назвать этот класс? :) Чтобы название отображало назначение этого класса, в терминах присущих Java, Java объектам.
По сути, да, он просто расширяет другой класс. Но другой класс это Bean, кроме того, это Entity класс.
И в этом классе я собираюсь использовать операции с данными из Product, помещая результат в поля этого класса.
Так же хочу объявить здесь некоторые классы, которые будут выполнять роль вспомогательных утилит, опять же для оперирования данными.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443976
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123POJO = bin но в разных технологиях.
В устной и письменной речи всё меньше и меньше)) LOL
Нет.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443979
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicКак же лучше назвать этот класс? :) Чтобы название отображало назначение этого класса, в терминах присущих Java, Java объектам.
Вы написали реализацию, но ни слова о предназначении класса или о том как и кем он используется.
Какую задачу класс решает? Кто использует этот класс? UI? Transaction Script? Controller?

NixicПо сути, да, он просто расширяет другой класс.
Почему используется наследование?

NixicТак же хочу объявить здесь некоторые классы, которые будут выполнять роль вспомогательных утилит, опять же для оперирования данными.
Что мешает тоже самое делать с сущностью? Вы столкнулись с проблемой Anemic Domain Model. Вы хотите живой объект с поведением, но по ORM привычке не знаете как же быть с Entity.
Так что же мешает писать логику в Entity?
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39443983
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Много интересного по теме
https://www.google.com/search?q=business logic in jpa entity
Рекомендую ознакомиться.

Выбор правильного решения сильно зависит от того что именно мы пишем. Сервер? Жирный UI? ERP систему? С насколько сложными процессами? И т.д.
...
Рейтинг: 0 / 0
Hibernate: произвольные поля в отображенных в структуру БД объектах.
    #39444014
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NixicА как надо сделать чтобы было не Г. ?
Сначала озвучить.
Это ваш первый проект? Строго на EJB?
Обычно первый проект делают так чтобы работало)).
Иначе существует 15 способов делать эти самые проекты.
Начали с темы-трупа про доп.поле и закончили вопросом об имени класса и архитектуре проекта.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate: произвольные поля в отображенных в структуру БД объектах.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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