Шов @Name на классах сущностей? - PullRequest
0 голосов
/ 09 июля 2011

Впервые я увидел аннотирующие классы сущностей 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 Ответ

2 голосов
/ 10 июля 2011

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

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

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

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

...