DarthShader
Erfahrenes Mitglied
Hallo zusammen,
ich habe so einige Annotationen in meiner Klasse, deren Parameter sich ständig wiederholen. Das sieht z.B. so aus:
(Es fehlt CascadeType.REMOVE, ich möchte also nicht .ALL verwenden)
Nun dachte ich, ich könnte mir im Klassenkopf eine Konstante definieren, die so aussieht:
Und dann alle Annotations-Parameter auf diese Konstante setzen, in etwa so:
Leider geht dies nicht, der Compiler unterstreicht "CASCADE_TYPES" und meldet
Kann man dies nicht so vereinfachen, sondern muss immer direkt die Werte als Array angeben? Oder gibt es eine andere Möglichkeit, wie ich die ständige Wiederholung des Annotation-Parameters "cascade" vermeiden kann?
ich habe so einige Annotationen in meiner Klasse, deren Parameter sich ständig wiederholen. Das sieht z.B. so aus:
Java:
@OneToOne( cascade = { CascadeType.PERSIST, CascadeType.MERGE,
CascadeType.DETACH, CascadeType.REFRESH } )
private Person person;
(Es fehlt CascadeType.REMOVE, ich möchte also nicht .ALL verwenden)
Nun dachte ich, ich könnte mir im Klassenkopf eine Konstante definieren, die so aussieht:
Java:
private static final CascadeType[] CASCADE_TYPES = { CascadeType.PERSIST,
CascadeType.MERGE, CascadeType.DETACH, CascadeType.REFRESH };
Und dann alle Annotations-Parameter auf diese Konstante setzen, in etwa so:
Java:
@OneToOne( cascade = CASCADE_TYPES )
private Person person;
Leider geht dies nicht, der Compiler unterstreicht "CASCADE_TYPES" und meldet
Java:
The value for annotation attribute OneToOne.cascade must be an array initializer
Kann man dies nicht so vereinfachen, sondern muss immer direkt die Werte als Array angeben? Oder gibt es eine andere Möglichkeit, wie ich die ständige Wiederholung des Annotation-Parameters "cascade" vermeiden kann?