Фильтр гибернации для обновления? - PullRequest
0 голосов
/ 08 ноября 2010

как я могу ограничить обновления ограниченных доменом данных?

Допустим, у меня есть пользователи моего приложения гибернации, которым разрешено просматривать все контракты определенной страны (например, filter: country = 'US')

Как я могу гарантировать, что этот пользователь может вставлять только новые записи со страной = 'US'?

Есть ли что-то вроде "фильтра для ограничения операторов обновления" в спящем режиме?

Ответы [ 2 ]

1 голос
/ 08 ноября 2010

Вы можете сделать это на уровне Hibernate, внедрив PreUpdateListener / PreInsertListener и наложив вето на обновление, но в большинстве случаев это, вероятно, будет чрезмерным уничтожением.

Я бы сделал это только в том случае, если это было критично по соображениям безопасности, и имел бы эту в дополнение к логике проверки ближе к слою View или Controller.Вы не упоминаете, что это за приложение, но в значительной степени все фреймворки пользовательского интерфейса (веб, настольный или мобильный) имеют поддержку валидации, которая сделает более удобной обработку такой логики (в отличие от обработки исключений из уровня персистентности).).

1 голос
/ 08 ноября 2010

Одним из вариантов является обработка чека в вашем DAO, например:

    public void saveContract(Contract contract, String countryCode) {

    if (contract.getCountryCode().equals(countryCode)) {
     threw InvalidContractException
   } else {
     saveContract(contract) }

    private void saveContract(Contract contract)

Я не думаю, что его можно проверить декларативно.

Если пользователи проходят аутентификацию на уровне БД, т.е.каждое приложение.У пользователя есть собственный пользователь базы данных, затем вы можете создать таблицу

db_user, ctry

и обратиться к этой таблице в отображении контракта с помощью?!

использовать виртуальную частную базу данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...