Шов @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 к этим классам. Это должно сказать вам кое-что!
Надеюсь это поможет.