Является ли хорошей практикой определение атрибута ID в классе? - PullRequest
2 голосов
/ 10 мая 2011

У меня есть поле идентификатора в базе данных, которое является первичным ключом. Это хорошая практика, чтобы определить это в классе? Мне понадобится ключ для выполнения обновлений и других операций.

У меня есть это сомнение, потому что я не уверен, но профессор сказал, что это не очень хорошая практика.

EDIT:

public class Pagina {

  private int id; //<--this is an good practice?
  private String urlOriginal;
  private String urlRedirected;
  private String content;
  private Link[] links;
  private Date updateDate;
  private Date visitDate;
  private boolean visitedLinks;
}

Ответы [ 5 ]

3 голосов
/ 10 мая 2011

Если ваш класс сохраняется в БД с использованием JPA, то это обязательно.Если нет, то это все еще довольно полезно.Трудно придумать пример, когда это может оказаться плохо.

2 голосов
/ 10 мая 2011

В Java, если вы используете Map, часто избыточно указывать ключ в значении.Однако стоимость обычно тривиальна, как и здесь.Если вы думаете, что проще моделировать данные таким образом, я бы так и сделал.(Даже если у вас нет фреймворка, который требует этого)

Ясность, как правило, самая важная вещь для рассмотрения.

2 голосов
/ 10 мая 2011

Строго говоря, нет .

К сожалению, большинство существующих сегодня платформ ORM не поддерживают прозрачно первичный ключ базы данных. Grails делает то же самое, что и OODBMS db4o , но такие как Hibernate не делают.

Это означает, что вам придется либо кусатьи укажите идентификатор в вашем доменном классе или напишите дополнительный слой, чтобы связать ваши доменные классы с чем-то, с чем ваша СУБД может общаться, не подвергая реализацию персистентности вашему уровню бизнес-логики.

0 голосов
/ 14 мая 2011

Согласно моему профессору , в решении проблемы в UML идентификатор не должен быть определен, поскольку каждый объект уникален и не нуждается в атрибуте идентификатора, но после, в зависимости от того, какойИспользуемая технология, в финальном проекте, Id необходим и проблем с его использованием нет.Это не нарушает передовой опыт.

0 голосов
/ 11 мая 2011

Если ваш модельный класс персистентен - тогда обязательно нужно определить какой-нибудь аналог ПК.Но это не всегда должно называться id - в случае Page это может быть, например, его URL (но это не очень хорошая идея).

Ваш профессор как-то аргументирует это?

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