powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate: помогите с архитектурой
25 сообщений из 64, страница 2 из 3
Hibernate: помогите с архитектурой
    #37914153
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бизнес процесс:
- начало - Открыл ИС, Что-то написал
- конец - Ушёл с билетами
Вот этот процесс - самый длинный. И ты его удлинняешь по ОДНОМУ обоснованию
авторААААА!!!!! -мне результат нужен, мне безуууумно нужен результаааат. НО, если получить его я не могу, я хочу чтобы исходные данные остались в форме и все. Чтобы я мог открыть ее потом, и попробовать получить результат снова, не вводя никаких больше данных
IMHO это - ерунда
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914157
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Petro123Итак, чем кассир отличается от пользователя?

Полномочиями, я не делаю продажу жд билетов или вообще билетов, почему вы в пример приводите мне то, чего у меня и близко нет? Отдельные аспекты возможно, но нельзя же так обобщать. Я пытаюсь придвинуть то что я написал поближе к вашим постам просто чтобы говорить об одних и тех же вещах. Какие 400 рублей?
Если так удобнее, пусть голос внутри головы говорит кассиру что вводить, и нет никаких других пользователей, и вселенский разум наделил его полномочиями отменять выполненные заявки. Я не хочу выяснять почему он может или не может это делать, правильно ли это с точки зрения железной дороги и воздушных сообщений.
Аксиома: мой пользователь МОЖЕТ нажимать на кнопки которые у него есть: сохранить, отменить, выполнить. Исходим из этого.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914167
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ. В 1С над документом есть процесс - Журнал документов. Где проводки выстраиваются по очереди.
Так что не надо вырывать разговор о мелком из большого.
Если вырывать, то нет проблем - Вам сказали - выкинуть хибер и на ODBC делай что хочешь.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914173
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerPetro123,
Petro123Итак, чем кассир отличается от пользователя?

Полномочиями, я не делаю продажу жд билетов или вообще билетов, почему вы в пример приводите мне то, чего у меня и близко нет?
==== дак найдите аналог из жизни! У вас нобелевская?
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914243
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
я перестаю вас понимать совершенно. Ничего я ниоткуда не вырываю. Зачем нужен пример из жизни? я привел четкий, пусть и нереальный пример, написал что я хочу получить, как я хочу это получить. Я сознательно не лезу ни во что другое (журналы проводок, блокировку ресурсов, юзабилити) только потому, что меня интересует отдельный конкретный вопрос, и ничего больше. Я вижу от вас все что угодно кроме ответа на него, не считая этого:
Petro123ЗЫ. В 1С над документом есть процесс - Журнал документов. Где проводки выстраиваются по очереди.
Так что не надо вырывать разговор о мелком из большого.
Если вырывать, то нет проблем - Вам сказали - выкинуть хибер и на ODBC делай что хочешь.


Делай что хочешь это мощно, я две страницы исписал тем чего я хочу, я не знаю КАК это сделать.
Да фиг с ним ,пусть будет Процесс . Начинаться он будет с заполнения заявки - заканчиваться выполненной заявкой.
состояний будет несколько:
1.Новая заявка (не сохранена и не выполнена)
2.заявка сохранена но не выполнена
3.заявка сохранена и выполнена
возможные варианты: 1-2,2-3,3-2
за переход между вариантами отвечает один метод process(), на вход которому я даю заявку и указываю что с ней делать (сохранить, выполнить, отменить). Метод process() делает одну вещь всегда - сохраняет заявку, а другую вещь (выполнить/отменить) делает только если его попросить об этом. Как мне завернуть каждый переход из состояния в состояние в отдельную транзакцию? это все что я хочу знать, ничего мне больше не нужно.
Если пошла аналогия с 1с, то мне нужен функционал , аналогичный сохранению документа с указанием режима проведения. И ничего больше, никаких журналов,проводок,последовательностей. В 1с это в транзакции, мне тоже надо в транзакции и все, только это.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914251
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerя перестаю вас понимать совершенно:)
пётр на седьмом уровне, ты пока ещё на третьем
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914254
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Petro123
автор
ААААА!!!!! -мне результат нужен, мне безуууумно нужен результаааат. НО, если получить его я не могу, я хочу чтобы исходные данные остались в форме и все. Чтобы я мог открыть ее потом, и попробовать получить результат снова, не вводя никаких больше данных

IMHO это - ерунда


Ну значит вся 1с ерунда. Я менеджер, мне надо отгрузить со склада какую-то продукцию, я пытаюсь это сделать, 1с дает отлуп - нет товара в наличии, я сохраняю документ, звоню клиенту и говорю что товара нет в наличии. На следующий товар привозят, я открываю тот же самый документ и вуаля, все отгружено.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914258
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.net,
а вы на каком?
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914260
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.netjavapeckerя перестаю вас понимать совершенно:)
пётр на седьмом уровне, ты пока ещё на третьем
угу)))
- он не в курсе, что архитектура - это выбор лучшего из 1000 вариантов.
- это значит, что решать "для коня в вакууме" невозможно.
Это imho ))
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914274
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

вы издеваетесь? какой конь? что непонятного с этими гребаными конфетами? что еще надо дописать к ним, чтобы вы предложили вариант? или про ТЗ это была не шутка? даже если и так, они изложено, пусть и не в формальном виде. Да даже и не прошу я уже вариант, я спрашиваю уже целую страницу про один несчастный метод и транзакцию.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914288
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,
да не расстраивайся, это мы про своё с grasoff.net.
...
я же не мешаю никому писать тут решение.
Лично я не могу строить модель данных для твоих Детолюбов.
.....
Счас попробую транзакцию написать...погоди.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914298
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
я действительно расстраиваюсь, потому что не вижу разницы с точки зрения построения архитектуры между реальным примером, который будет загроможден кучей лишних специфичных для предметной области вещей, и выдуманным примером, который четко отражает суть того что нужно сделать
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914312
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,
- разница есть
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.

Вот абстрактно ОДНА транзвкция = ОДИН метод.
Причём TransactionAttribute выполняется доли секунды. И желательно (для веб) чтобы вся БИЗНЕС транзакция вошла в этот метод.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void processTrade(TradeData trade)                  throws Exception 
{
   try 
   {
      // БЛ или проверки всякие
      TraderData trader =      service.getTrader(trade.getTraderID());
      validateTrader(trade, trader);

      service.insertTrade(trade); //тут первый кэш будет сброшен и синхронизирован.
      // последующая обработка POST
      performPost(trade, trader);
   } 
   catch (Exception up) 
   {
      ctx.setRollbackOnly();
      throw up;
   }
}


т.е. пихаешь всё что нужно в эти методы внутри.
Модель данных мне сложно делать на космос. На то она и МОДЕЛЬ.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914351
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Спасибо, у меня к сожалению нет контейнера, чтобы использовать @TransactionAttribute(TransactionAttributeType.REQUIRED). Есть JAVA, есть Hibernate, есть мой долбаный метод, убираю свое требование(сохранение заявки в любом случае, даже если выполнение отвалилось) То есть метод = транзакция, откат = вернуть все как было. То есть по функционалу нужно ровно то же что вы написали - но имея только то что у меня есть.
Petro123Модель данных мне сложно делать на космос. На то она и МОДЕЛЬ.
а если не на космос то сделаете?
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914356
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,
- без контейнера ещё проще. Контейнер равен обёртыванию в try.

начни отсюда:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
import org.hibernate.Session;
import ru.javatalks.faq.persistence.hibernate.bookstore.Book;
import ru.javatalks.faq.persistence.hibernate.util.HibernateUtil;

public class Main {
    public static void main(String[] args) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        Book book = new Book();
        book.setPageCount(520);
        book.setTitle("Tales of Round Table");
        session.save(book);//сохранили книгу, наш id сгенерировался и сразу заполнился
        book = (Book) session.get(Book.class, book.getId());
        book.setPageCount(430);
        session.save(book);
        session.delete(book);
        session.flush();
        session.close();
    }
}



- если не на космос, то да:
выбирай
http://www.databaseanswers.org/data_models/
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914383
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
я пишу длинные посты, поэтому вы их не читаете. Естественно я знаю, как сделать это имея хибернейт согласно с вашим примером. Но я писал везде раньше, что не хочу использовать прямой вызов методов хибернейта - мешать логику с реализацией персиста, хочу прослойку, и мои методы как раз похожи на ваши из примера:
Код: java
1.
service.insertTrade(trade)


но не используя контейнер, как я понимаю транзакция начнется в этом методе и там же закончится. в этом проблема.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914422
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Petro123- если не на космос, то да:
выбирай
http://www.databaseanswers.org/data_models/
ох блин, тут целый день выбирать можно и не выбрать.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914480
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerPetro123,
я пишу длинные посты, поэтому вы их не читаете. Естественно я знаю, как сделать это имея хибернейт согласно с вашим примером. Но я писал везде раньше, что не хочу использовать прямой вызов методов хибернейта - мешать логику с реализацией персиста, хочу прослойку, и мои методы как раз похожи на ваши из примера:
Код: java
1.
service.insertTrade(trade)


но не используя контейнер, как я понимаю транзакция начнется в этом методе и там же закончится. в этом проблема.
нет, я читаю, и помню, и у меня хорошая память. Просто я ответ отложил на потом (модель важнее).
Ответ - мешать логику с реализацией персиста - можно.

Тут (в вебе) много споров, но ничего страшного в этом нет.
Т.к. нет ничего "чистого" - всегда компромисс между оверхедом и простотой.
imho
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914483
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerох блин, тут целый день выбирать можно и не выбрать.
и правильно. Тут целый форум про проектированию модели рядом.
(В Java маппинг всё равно ложится на эту модель).
Просто Jav'исты проще видят в коде, чем в диаграммах.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914498
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerтранзакция начнется в этом методе и там же закончится. в этом проблема.
не совсем.
Есть транзакции вложенные. Сами СУБД это поддерживают. ОРМ, как прослойка - не поддерживает.
И везде написано, что транзакции - как можно короче.
Когда хибер сбросит кеш в СУБД - это Commit.
Поэтому для заказов и хранения состояния заявки делают всякие галки в БД.
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914501
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
совет - плюнь на красоту и сделай транзакции при конкурентном доступе к конфетам от 10000 пользователей.
Если у тебя не препод дал задачу.
Удачи!
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914522
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckergrasoff.net,
а вы на каком?на первом, он у меня и последний )
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914633
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На красоту мне плевать. просто логика вряд ли изменится, а вот персист может и должен совершенствоваться. я просто не хочу при этом лезть и менять что-то в логике. это неправильно. Вдруг хибернейт начнет проводить опыты на кроликах, разумеется я сразу забью на него и приду к другому провайдеру, и мне придется лезть только в классы, оборачивающие персист, но никак не в мой многострадальный process(). про субд и вложенные транзакции мне хорошо известно. и про то что орм их не поддерживает - тоже.
Но вот я проглядел первый же ответ в теме:
BlazkowiczСессии и транзакции это не одно и тоже. Всегде можно обойтись без прямого доступа через менеджер и привязку к потокам. А управление транзакциями это вообще одна из задач бизнес-логики.
сессии и транзакции понятно что не одно и то же, а вот вторую часть предложения пожалуйста поясните, я не догнал пока как это реализовать, кажется это именно то что мне нужно. Примерно представляю так: обеспечить чтобы каждый мой сервисный метод типа MyPersist.save(MyEntity) использовал текущую сессию, и транзакцию открытую в этой сессии, вместо того чтобы начинать новую. Но тогда у меня появятся некоторые методы, способные начать новую транзакцию, и методы, лишенные такой возможности. Я сейчас возможно хрень написал, но она хотя бы рядом со смыслом цитаты или вообще далеко?
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914650
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,
авторНа красоту мне плевать. просто логика вряд ли изменится, а вот персист может и должен совершенствоваться
это выше совершенно непонятно. Подкрепите кодом.

Про текущую сессию - проблема. Вы можете управлять транзакциями (декларативно или через try) только в рамках сессии сервлета . А эта сессия равна сессии хибер .
Так что у вас всего надцать миллисекунд чтобы управлять ))
...
Рейтинг: 0 / 0
Hibernate: помогите с архитектурой
    #37914651
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerа вот вторую часть предложения пожалуйста поясните, я не догнал пока как это реализовать, кажется это именно то что мне нужно
https://www.google.com/search?q=Declarative+Transaction+Management
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate: помогите с архитектурой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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