Защо JPA Transient анотацията има метод в Target?

Може ли някой да обясни с помощта на пример защо @Transient анотацията в JPA също има @Target метод?

Имам предвид документация http://docs.oracle.com/javaee/5/api/javax/persistence/Transient.html

@Target(стойност={МЕТОД,ПОЛЕ})

Благодаря предварително!


person user2906555    schedule 26.07.2016    source източник
comment
можете да получите достъп до преходен атрибут чрез getter метод или поле, затова има   -  person Saravana    schedule 26.07.2016
comment
Как има смисъл да го разрешаваме на методи? разрешаването само на полета не трябва да е достатъчно?   -  person user2906555    schedule 26.07.2016
comment
не, можете да програмирате за достъп до поле с помощта на методи за отражение или получаване.   -  person Saravana    schedule 26.07.2016
comment
Това няма нищо общо с JPA и само с основни анотации на Java.   -  person Neil Stockton    schedule 26.07.2016


Отговори (3)


вторият аргумент е с един по-малък от крайната стойност. така че ако поставите -1, тогава диапазонът спира на 0, ако поставите -5, диапазонът спира на -4 (за нарастване от -1)
person Predrag Maric    schedule 26.07.2016
comment
Можете ли да помогнете с пример, при който @Transient е по-подходящ за използване на метод, а не на поле? - person user2906555; 27.07.2016

Анотацията @Target ви позволява да определите къде може да се използва тази анотация, например класът, полетата, методите и т.н. посочва кой програмен елемент(и) може да бъде анотиран с помощта на екземпляри от типа анотация с анотации.

@Target(value={METHOD,FIELD}) означава, че анотацията може да се използва само върху типове (обикновено методи и полета). можете да оставите целта заедно, така че анотацията да може да се използва както за класове, методи, така и за полета.

В JPA @Target – Маркира друга анотация @Transient, за да ограничи към какъв вид Java елементи може да се прилага анотацията.

person Mihir    schedule 26.07.2016

Това означава, че анотацията може да се използва на Field или method.

Ако полето е анотирано, полето ще бъде достъпно чрез отражение.

Ако method(getter) е анотиран, тогава методът getter ще се използва за достъп до него.

person Saravana    schedule 26.07.2016