Шов @Name на классах сущностей?

Я впервые увидел аннотирующие классы сущностей Seam здесь

http://www.developer.com/java/ejb/article.php/10931_3715171_5/Introducing-JBossreg-Seam.htm

и по какой-то причине я делал это с тех пор:

@Entity
@Table (name= "GADGET")
@Name("gadget")
public class GadgetBean implements Serializable {
   private String mDescription = "";
   private String mType = "";
   ...
}

Тем не менее, я не использую "компоненты сущности", подобные этому, в своих представлениях. Кто-нибудь может объяснить использование этого и что это дает? Это не практика?

1 ответ

Решение

Если вы не используете ни один из этих компонентов сущности в своих представлениях, вам следует удалить аннотацию @Name.

Шов хорош, но компоненты шва идут с накладными расходами в виде перехватчиков, запускаемых каждый раз, когда вы получаете доступ к методу в этом классе. Поскольку вы не обращаетесь к этим атрибутам в своем представлении, нет необходимости превращать их в компоненты шва. Вы получаете накладные расходы на перехватчик каждый раз, когда используете геттер или сеттер из ваших бинов сущностей.

Seam-gen, инструмент, используемый для создания шовных проектов, также может генерировать сущности, которые подвергаются обратному проектированию из таблиц вашей базы данных. По умолчанию генератор сущностей seam-gen НЕ добавляет аннотацию @Name к этим классам. Это должно сказать вам кое-что!

Надеюсь это поможет.

Другие вопросы по тегам