powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORM vs sql
25 сообщений из 451, страница 15 из 19
ORM vs sql
    #37608999
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К ЯООП - это чё?
Языческая организация освобождения Палестины
...
Рейтинг: 0 / 0
ORM vs sql
    #37609035
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда понятно...
...
Рейтинг: 0 / 0
ORM vs sql
    #37615013
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужна помощь вашего клуба по сабжу (ОРМ Хибер).
- есть длинная бизнес транзакция на клиенте (напр. Визард)
- Hibernate работает на коротких Session-Per-Request
- Получается желательно Session-Per-View (десктоп)

- Без ОРМ, в СУБД, это решается элементарно уровнем изоляции
READ_COMMITED.
- Как расширить транзакцию с ОРМ шире одного реквеста?
- Или как в ОРМ хранить состояние \ Снимок БД?


ТЗ
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=909575&msg=11905049

теория темы
http://www.sql.ru/forum/actualthread.aspx?tid=909575&pg=1

практический код решения на Java
http://www.sql.ru/forum/actualthread.aspx?tid=909083&pg=1
...
Рейтинг: 0 / 0
ORM vs sql
    #37615085
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Нужна помощь вашего клуба по сабжу (ОРМ Хибер).
- есть длинная бизнес транзакция на клиенте (напр. Визард)
- Hibernate работает на коротких Session-Per-Request
- Получается желательно Session-Per-View (десктоп)

- Без ОРМ, в СУБД, это решается элементарно уровнем изоляции
READ_COMMITED.
- Как расширить транзакцию с ОРМ шире одного реквеста?
- Или как в ОРМ хранить состояние \ Снимок БД?


ТЗ
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=909575&msg=11905049

теория темы
http://www.sql.ru/forum/actualthread.aspx?tid=909575&pg=1

практический код решения на Java
http://www.sql.ru/forum/actualthread.aspx?tid=909083&pg=1

svenon, так красиво и по хамски пел про AppSever, а на деле предлагает какой-то маразм с выборками кэша hibernate.
Решение только средствами ORM c длинными и прочими транзакциями, на мой взгляд, - это вариант через одно место.
Нужен десктоп или это чистый web?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615117
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,
нужен чистый веб.
Десктоп нет проблем с длинными, т.к. там нет реквеста вообще
...
Рейтинг: 0 / 0
ORM vs sql
    #37615120
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрел, все ОРМ'ы требуют своё закрытие на конец HTTP запроса (myBatis тоже).
Хотя на деле всё IT поёт за rich ГУИ на веб
...
Рейтинг: 0 / 0
ORM vs sql
    #37615175
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Мб я что то не так понял, но на EF можно так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
TestEdDatabaseEntities _context;

        IDbTransaction _transaction;

        public Form1()
        {
            InitializeComponent();
            _context = new TestEdDatabaseEntities();
        }

        private void OpenTransaction_Click(object sender, EventArgs e)
        {
            if (this._transaction == null)
            {
                if (_context.Connection.State == ConnectionState.Closed)
                {
                    _context.Connection.Open();
                }
                _transaction = _context.Connection.BeginTransaction(IsolationLevel.ReadCommitted);
            }

        }

        private void ChangeData_Click(object sender, EventArgs e)
        {
            if (_transaction != null)
            {
                Random r = new Random();
                foreach (var item in _context.Table1Set)
                {
                    item.SearctField1 = r.Next();
                }
                _context.SaveChanges();
            }
        }

        private void CloseTransaction_Click(object sender, EventArgs e)
        {
            if (_transaction != null)
            {
                _transaction.Commit();
                _context.Connection.Close();
                _transaction = null;
            }
        }


Длинная транзакция, изоляция измененных данных... Вроде то что вы искали(правда не на хибере, но вы же уже про все ORM говорить стали...)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615184
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123- есть длинная бизнес транзакция на клиенте (напр. Визард)Если это самоцель - ничего путного не получится.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615187
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера?
...
Рейтинг: 0 / 0
ORM vs sql
    #37615192
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,
визард или вкладки в веб самоцель?
- вы не видели в веб визардов? Пошаговых операций? AJAX?
- это вопрос к заказчику
...
Рейтинг: 0 / 0
ORM vs sql
    #37615195
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЧто мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера?
- накопить как? В клиенте в куки?
- весь объект или только ID?
- в ТЗ есть допусловия на перезапрос к этим сырым данным.
В десктопе это обычное плёвое дело.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615196
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
ммм. Так я не вкурю. Я не знаю его архитектуру. Но он (EF) ведь к серверному ORM не имеет отношение ;)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615197
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Lelouch,
ммм. Так я не вкурю. Я не знаю его архитектуру. Но он (EF) ведь к серверному ORM не имеет отношение ;)

Что есть серверная ORM? oO

P.S. Вариант с помощью CommitableTransaction:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
TestEdDatabaseEntities _context;        
        CommittableTransaction _tr;

        public Form1()
        {
            InitializeComponent();
            _context = new TestEdDatabaseEntities();
        }

        private void OpenTransaction_Click(object sender, EventArgs e)
        {
            _tr = new CommittableTransaction(new TransactionOptions()
            {
                IsolationLevel = IsolationLevel.ReadCommitted
            });
        }

        private void ChangeData_Click(object sender, EventArgs e)
        {
            var oldTransaction = Transaction.Current;
            Transaction.Current = _tr;
            _context.Connection.Open();
            Random r = new Random();
            foreach (var item in _context.Table1Set)
            {
                item.SearctField1 = r.Next();
            }
            _context.SaveChanges();
            Transaction.Current = oldTransaction;
        }

        private void CloseTransaction_Click(object sender, EventArgs e)
        {
            _tr.Commit();
        }

...
Рейтинг: 0 / 0
ORM vs sql
    #37615199
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему даже google такого термина не знает...
...
Рейтинг: 0 / 0
ORM vs sql
    #37615202
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
проблема в технической стороне. Хибер это умеет?
Как это у него решается?
Можно ли запретить у него сброс в БД (flush) и делать запросы к его кэшу не сбрасывая до последнего длинного бизнес-коммита.
Вроде хибер одинаков с Java.
Как решается проблема потокового HTTP запроса и НЕ потокозащищённости Хибера
...
Рейтинг: 0 / 0
ORM vs sql
    #37615205
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей К,
визард или вкладки в веб самоцель?
- вы не видели в веб визардов? Пошаговых операций? AJAX?
- это вопрос к заказчикуТут вопрос про длинную транзакцию в БД, вызванную, как мне показалось, архитектурой тех самых вкладок (их независимость и т. п.) С обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит, а тут ещё и Веб.
Petro123Алексей КЧто мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера?
- накопить как? В клиенте в куки?
- весь объект или только ID?
- в ТЗ есть допусловия на перезапрос к этим сырым данным.
В десктопе это обычное плёвое дело.Наверное как-то можно не перегружать веб-страницу на протяжении всего времени жизни мастера. Обмениваться данными между страницами мастера с помощью JavaScript.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615206
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchЧто есть серверная ORM? oO
термин спорный, но....
в коде нет VIEW и public Form1()
...
Рейтинг: 0 / 0
ORM vs sql
    #37615208
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КС обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит
вы не правы. Всё замечательно.
Код: c#
1.
2.
3.
4.
5.
begin tran (не в бд)
- новый мастер
- получили из триггера его ID
- вставили заказ-дочку в детайл
commit (не в бд)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615209
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНаверное как-то можно не перегружать веб-страницу на протяжении всего времени жизни мастера. Обмениваться данными между страницами мастера с помощью JavaScript.
обмен не проблема по AJAX асинхронно.
Проблема, что на 5 погрузок по AJAX и 6-ой HTTP-POST серевер-хибер забыл про первые 5.
Он раньше 5 раз коммитил и сбрасывал в БД
...
Рейтинг: 0 / 0
ORM vs sql
    #37615210
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Или организовывать на сервере поддержку бизнес-сессий с хранением промежуточных данных, механизмом "убивания" подвисших сессий и т. п.

зы: Веб для бизнеса не нужен. Представлен типичный пример гемора на пустом месте. :-)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615212
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Мои комментарии относятся к:
Petro123посмотрел, все ОРМ'ы требуют своё закрытие на конец HTTP запроса (myBatis тоже).
Я об этом кстати написал: Lelouch(правда не на хибере, но вы же уже про все ORM говорить стали ...)

С хибером никогда не сталкивался, а java меня волнует в данный момент чуть более чем никак.

P.S. Имхо NHibernate должен поддерживать MSDTC (CommitableTransaction к нему относится). Что есть в java подобного - я не в курсе.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615214
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123обмен не проблема по AJAX асинхронно.
Проблема, что на 5 погрузок по AJAX и 6-ой HTTP-POST серевер-хибер забыл про первые 5.
Он раньше 5 раз коммитил и сбрасывал в БДВы меня не поняли. Цель - не перегружать веб -страницу при переключении между страницами мастера.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615215
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123LelouchЧто есть серверная ORM? oO
термин спорный, но....
в коде нет VIEW и public Form1()

Я вам должен 3х звенку для 5минутного примера городить?)
...
Рейтинг: 0 / 0
ORM vs sql
    #37615217
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,
т.е на входе АппСервер или Вебсервер есть В ПОТОКЕ функция реквест (HTTP запрос).
Обычный веб - выстрелил и забыл.
Мне нужно чтобы хибер был синглетоном и помнил состояние.
...
Рейтинг: 0 / 0
ORM vs sql
    #37615218
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Алексей КС обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит
вы не правы. Всё замечательно.
Код: c#
1.
2.
3.
4.
5.
begin tran (не в бд)
- новый мастер
- получили из триггера его ID
- вставили заказ-дочку в детайл
commit (не в бд)

Может быть.
...
Рейтинг: 0 / 0
25 сообщений из 451, страница 15 из 19
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORM vs sql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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