Логическое удаление из базы данных EJB - PullRequest
0 голосов
/ 17 января 2011

У меня есть база данных, и таблицы в этой базе данных взаимосвязаны. Я использую шов и EJB для обработки данных внутри этих таблиц в базе данных. Моя база данных - postgres.

Теперь я пытаюсь удалить данные из одной таблицы, но получаю ошибку postgres sql, которая говорит мне, что я нарушаю правила. Я понимаю, что я могу удалить эту базу данных логически
- Ситуация, когда я должен удалить базу данных и установить флаг.

Но я не знаю, как это сделать. Я знаю, что это просто, но простите меня. Я не знаю это. Любая помощь будет благодарна. Ниже приведен код, который я использую. Спасибо за вашу помощь.

public void delete() throws java.sql.SQLException {
  System.out.println("I got here FIRST");   
  user =em.find(Subscriber.class, subscriber.getId()); //ADDED LATER
  users.remove(subscriber.getId());
  em.remove(subscriber);
  userList(); 
 }

1 Ответ

1 голос
/ 17 января 2011

Из того, что я вижу на первый взгляд, возможно, вы хотите удалить запрашиваемого пользователя?

Таким образом, измените em.remove(subscriber); на em.remove(user); //, который вы загружаете из находки.метод

Обновление

Не знаю, с каким flag вы хотите проверить, позвольте мне продемонстрировать, как вы можете это сделать:

ПозволяетПредположим, что у пользователя есть логическое поле с именем отключено, и вы хотите удалить только отключенных пользователей.

if(user.isDisabled()) 
   em.remove(user);

Таким образом, вы удаляете пользователей, только если flag имеет значение true.

...