Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Использовать Hibernate read only


Автор: oson 16.4.2010, 10:08
Такой вопрос. Есть система написанная на php - веб магазин WebAsyst. У нее есть ессно mysql база.
Мне надо сделать систему на Java которая бы коннектилась к этой базе, читала данные из WebAsyst таблиц но ничего в них ессно не писала, дабы не поломать работу магазина. При этом в той же базе будут таблицы самой этой Java системы, в которую она будет записывать данные относящиеся к аписям в таблицах WebAsyst. То есть например система считывает какой-то webasys_order с ID = 555 из WebAsyst таблицы и записывает статус в таблицу my_orderstate данные по состоянию заказа для id 555 из webasys_order. Как сделать, чтобы быть уверенным, что Hibernate не будет ничего писать в webasys_order? И вообще может есть у кого опыт создания таких систем - то есть достроить систему на базе, с которой работает совсем другая система, чтобы не мешать той первой на php которая.
Спасибо.

Автор: 0x00 16.4.2010, 10:59
попробуй .setAutoCommit(false);
пока явно commit не укажеш изменения в бд не будут произведены.

Автор: afon 16.4.2010, 12:16
Имхо вопрос странный. 
Пока сам явно не напишешь код типа 
wo = new webasysOrder();
dao.persist(wo);
никто никуда ничего не сохранит. 

Получается, ты сам себе не доверяешь?

Если не доверяешь smile напиши на php в том сайте, который работает с базой напрямую, какое-нибудь безопасное API и вызывай его из своего кода smile Если не лень конечно.

Автор: MaxPayneC 16.4.2010, 12:33
Цитата(oson @  16.4.2010,  10:08 Найти цитируемый пост)
Как сделать, чтобы быть уверенным, что Hibernate не будет ничего писать в webasys_order

Коннектиться под пользователем, у которого нет прав на запись smile

Автор: oson 19.4.2010, 23:49
php не знаю так что ничего на нем не напишу smile
просто как то сделать определенные таблицы read-only, чтобы Hibernate там не переписал ничего. Именно те таблицы что создал для себя WebAsyst.

Автор: ki6opr 20.4.2010, 06:07
Цитата(oson @ 19.4.2010,  23:49)
php не знаю так что ничего на нем не напишу smile
просто как то сделать определенные таблицы read-only, чтобы Hibernate там не переписал ничего. Именно те таблицы что создал для себя WebAsyst.

ну можно везде написать @Column(insertable=false,updatable=false) и естественно выключить hibernate auto ddl генерацию

это первое что в голову пришло

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)