|
|
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Бизнес процесс: - начало - Открыл ИС, Что-то написал - конец - Ушёл с билетами Вот этот процесс - самый длинный. И ты его удлинняешь по ОДНОМУ обоснованию авторААААА!!!!! -мне результат нужен, мне безуууумно нужен результаааат. НО, если получить его я не могу, я хочу чтобы исходные данные остались в форме и все. Чтобы я мог открыть ее потом, и попробовать получить результат снова, не вводя никаких больше данных IMHO это - ерунда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 11:28:53 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Petro123, Petro123Итак, чем кассир отличается от пользователя? Полномочиями, я не делаю продажу жд билетов или вообще билетов, почему вы в пример приводите мне то, чего у меня и близко нет? Отдельные аспекты возможно, но нельзя же так обобщать. Я пытаюсь придвинуть то что я написал поближе к вашим постам просто чтобы говорить об одних и тех же вещах. Какие 400 рублей? Если так удобнее, пусть голос внутри головы говорит кассиру что вводить, и нет никаких других пользователей, и вселенский разум наделил его полномочиями отменять выполненные заявки. Я не хочу выяснять почему он может или не может это делать, правильно ли это с точки зрения железной дороги и воздушных сообщений. Аксиома: мой пользователь МОЖЕТ нажимать на кнопки которые у него есть: сохранить, отменить, выполнить. Исходим из этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 11:31:26 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
ЗЫ. В 1С над документом есть процесс - Журнал документов. Где проводки выстраиваются по очереди. Так что не надо вырывать разговор о мелком из большого. Если вырывать, то нет проблем - Вам сказали - выкинуть хибер и на ODBC делай что хочешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 11:33:11 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapeckerPetro123, Petro123Итак, чем кассир отличается от пользователя? Полномочиями, я не делаю продажу жд билетов или вообще билетов, почему вы в пример приводите мне то, чего у меня и близко нет? ==== дак найдите аналог из жизни! У вас нобелевская? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 11:35:05 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Petro123, я перестаю вас понимать совершенно. Ничего я ниоткуда не вырываю. Зачем нужен пример из жизни? я привел четкий, пусть и нереальный пример, написал что я хочу получить, как я хочу это получить. Я сознательно не лезу ни во что другое (журналы проводок, блокировку ресурсов, юзабилити) только потому, что меня интересует отдельный конкретный вопрос, и ничего больше. Я вижу от вас все что угодно кроме ответа на него, не считая этого: Petro123ЗЫ. В 1С над документом есть процесс - Журнал документов. Где проводки выстраиваются по очереди. Так что не надо вырывать разговор о мелком из большого. Если вырывать, то нет проблем - Вам сказали - выкинуть хибер и на ODBC делай что хочешь. Делай что хочешь это мощно, я две страницы исписал тем чего я хочу, я не знаю КАК это сделать. Да фиг с ним ,пусть будет Процесс . Начинаться он будет с заполнения заявки - заканчиваться выполненной заявкой. состояний будет несколько: 1.Новая заявка (не сохранена и не выполнена) 2.заявка сохранена но не выполнена 3.заявка сохранена и выполнена возможные варианты: 1-2,2-3,3-2 за переход между вариантами отвечает один метод process(), на вход которому я даю заявку и указываю что с ней делать (сохранить, выполнить, отменить). Метод process() делает одну вещь всегда - сохраняет заявку, а другую вещь (выполнить/отменить) делает только если его попросить об этом. Как мне завернуть каждый переход из состояния в состояние в отдельную транзакцию? это все что я хочу знать, ничего мне больше не нужно. Если пошла аналогия с 1с, то мне нужен функционал , аналогичный сохранению документа с указанием режима проведения. И ничего больше, никаких журналов,проводок,последовательностей. В 1с это в транзакции, мне тоже надо в транзакции и все, только это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:10:11 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapeckerя перестаю вас понимать совершенно:) пётр на седьмом уровне, ты пока ещё на третьем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:11:59 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Petro123, Petro123 автор ААААА!!!!! -мне результат нужен, мне безуууумно нужен результаааат. НО, если получить его я не могу, я хочу чтобы исходные данные остались в форме и все. Чтобы я мог открыть ее потом, и попробовать получить результат снова, не вводя никаких больше данных IMHO это - ерунда Ну значит вся 1с ерунда. Я менеджер, мне надо отгрузить со склада какую-то продукцию, я пытаюсь это сделать, 1с дает отлуп - нет товара в наличии, я сохраняю документ, звоню клиенту и говорю что товара нет в наличии. На следующий товар привозят, я открываю тот же самый документ и вуаля, все отгружено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:13:26 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
grasoff.net, а вы на каком? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:15:18 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
grasoff.netjavapeckerя перестаю вас понимать совершенно:) пётр на седьмом уровне, ты пока ещё на третьем угу))) - он не в курсе, что архитектура - это выбор лучшего из 1000 вариантов. - это значит, что решать "для коня в вакууме" невозможно. Это imho )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:16:38 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Petro123, вы издеваетесь? какой конь? что непонятного с этими гребаными конфетами? что еще надо дописать к ним, чтобы вы предложили вариант? или про ТЗ это была не шутка? даже если и так, они изложено, пусть и не в формальном виде. Да даже и не прошу я уже вариант, я спрашиваю уже целую страницу про один несчастный метод и транзакцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:22:19 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapecker, да не расстраивайся, это мы про своё с grasoff.net. ... я же не мешаю никому писать тут решение. Лично я не могу строить модель данных для твоих Детолюбов. ..... Счас попробую транзакцию написать...погоди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:28:20 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Petro123, я действительно расстраиваюсь, потому что не вижу разницы с точки зрения построения архитектуры между реальным примером, который будет загроможден кучей лишних специфичных для предметной области вещей, и выдуманным примером, который четко отражает суть того что нужно сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:33:29 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapecker, - разница есть "Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн. Вот абстрактно ОДНА транзвкция = ОДИН метод. Причём TransactionAttribute выполняется доли секунды. И желательно (для веб) чтобы вся БИЗНЕС транзакция вошла в этот метод. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. т.е. пихаешь всё что нужно в эти методы внутри. Модель данных мне сложно делать на космос. На то она и МОДЕЛЬ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:41:32 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Petro123, Спасибо, у меня к сожалению нет контейнера, чтобы использовать @TransactionAttribute(TransactionAttributeType.REQUIRED). Есть JAVA, есть Hibernate, есть мой долбаный метод, убираю свое требование(сохранение заявки в любом случае, даже если выполнение отвалилось) То есть метод = транзакция, откат = вернуть все как было. То есть по функционалу нужно ровно то же что вы написали - но имея только то что у меня есть. Petro123Модель данных мне сложно делать на космос. На то она и МОДЕЛЬ. а если не на космос то сделаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 12:56:09 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapecker, - без контейнера ещё проще. Контейнер равен обёртыванию в try. начни отсюда: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. - если не на космос, то да: выбирай http://www.databaseanswers.org/data_models/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 13:01:11 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Petro123, я пишу длинные посты, поэтому вы их не читаете. Естественно я знаю, как сделать это имея хибернейт согласно с вашим примером. Но я писал везде раньше, что не хочу использовать прямой вызов методов хибернейта - мешать логику с реализацией персиста, хочу прослойку, и мои методы как раз похожи на ваши из примера: Код: java 1. но не используя контейнер, как я понимаю транзакция начнется в этом методе и там же закончится. в этом проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 13:16:28 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
Petro123, Petro123- если не на космос, то да: выбирай http://www.databaseanswers.org/data_models/ ох блин, тут целый день выбирать можно и не выбрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 13:38:52 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapeckerPetro123, я пишу длинные посты, поэтому вы их не читаете. Естественно я знаю, как сделать это имея хибернейт согласно с вашим примером. Но я писал везде раньше, что не хочу использовать прямой вызов методов хибернейта - мешать логику с реализацией персиста, хочу прослойку, и мои методы как раз похожи на ваши из примера: Код: java 1. но не используя контейнер, как я понимаю транзакция начнется в этом методе и там же закончится. в этом проблема. нет, я читаю, и помню, и у меня хорошая память. Просто я ответ отложил на потом (модель важнее). Ответ - мешать логику с реализацией персиста - можно. Тут (в вебе) много споров, но ничего страшного в этом нет. Т.к. нет ничего "чистого" - всегда компромисс между оверхедом и простотой. imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 14:13:00 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapeckerох блин, тут целый день выбирать можно и не выбрать. и правильно. Тут целый форум про проектированию модели рядом. (В Java маппинг всё равно ложится на эту модель). Просто Jav'исты проще видят в коде, чем в диаграммах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 14:15:12 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapeckerтранзакция начнется в этом методе и там же закончится. в этом проблема. не совсем. Есть транзакции вложенные. Сами СУБД это поддерживают. ОРМ, как прослойка - не поддерживает. И везде написано, что транзакции - как можно короче. Когда хибер сбросит кеш в СУБД - это Commit. Поэтому для заказов и хранения состояния заявки делают всякие галки в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 14:19:43 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
совет - плюнь на красоту и сделай транзакции при конкурентном доступе к конфетам от 10000 пользователей. Если у тебя не препод дал задачу. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 14:21:32 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapeckergrasoff.net, а вы на каком?на первом, он у меня и последний ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 14:29:10 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
На красоту мне плевать. просто логика вряд ли изменится, а вот персист может и должен совершенствоваться. я просто не хочу при этом лезть и менять что-то в логике. это неправильно. Вдруг хибернейт начнет проводить опыты на кроликах, разумеется я сразу забью на него и приду к другому провайдеру, и мне придется лезть только в классы, оборачивающие персист, но никак не в мой многострадальный process(). про субд и вложенные транзакции мне хорошо известно. и про то что орм их не поддерживает - тоже. Но вот я проглядел первый же ответ в теме: BlazkowiczСессии и транзакции это не одно и тоже. Всегде можно обойтись без прямого доступа через менеджер и привязку к потокам. А управление транзакциями это вообще одна из задач бизнес-логики. сессии и транзакции понятно что не одно и то же, а вот вторую часть предложения пожалуйста поясните, я не догнал пока как это реализовать, кажется это именно то что мне нужно. Примерно представляю так: обеспечить чтобы каждый мой сервисный метод типа MyPersist.save(MyEntity) использовал текущую сессию, и транзакцию открытую в этой сессии, вместо того чтобы начинать новую. Но тогда у меня появятся некоторые методы, способные начать новую транзакцию, и методы, лишенные такой возможности. Я сейчас возможно хрень написал, но она хотя бы рядом со смыслом цитаты или вообще далеко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 15:17:51 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapecker, авторНа красоту мне плевать. просто логика вряд ли изменится, а вот персист может и должен совершенствоваться это выше совершенно непонятно. Подкрепите кодом. Про текущую сессию - проблема. Вы можете управлять транзакциями (декларативно или через try) только в рамках сессии сервлета . А эта сессия равна сессии хибер . Так что у вас всего надцать миллисекунд чтобы управлять )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 15:27:04 |
|
||
|
Hibernate: помогите с архитектурой
|
|||
|---|---|---|---|
|
#18+
javapeckerа вот вторую часть предложения пожалуйста поясните, я не догнал пока как это реализовать, кажется это именно то что мне нужно https://www.google.com/search?q=Declarative+Transaction+Management ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2012, 15:27:26 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37914356&tid=2131140]: |
0ms |
get settings: |
17ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 303ms |
| total: | 469ms |

| 0 / 0 |
