2013-05-24 18 views
8

Czy można stosować adnotacje Java, które są stosowane warunkowo? Na przykład, powiedzmy, że mam mapowanie hibernacji z adnotacjami sekwencji:Adnotacje warunkowe oparte na środowisku

@Id 
@Column(name = "TABLE_ID") 
@GeneratedValue(strategy = SEQUENCE, generator = "generator") 
@SequenceGenerator(name = "generator", sequenceName = "TABLE_SEQ") 
public Long getId() { 
    return this.Id; 
} 

Czy można coś zrobić jak poniżej, gdzie adnotacje są usuwane w oparciu o, powiedzmy, zmiennej środowiskowej?

@Id 
@Column(name = "TABLE_ID") 
if(env.equals('dev')){ 
    @GeneratedValue(strategy = SEQUENCE, generator = "generator") 
    @SequenceGenerator(name = "generator", sequenceName = "TABLE_SEQ")} 
public Long getId() { 
    return this.Id; 
} 

UWAGA: Rozumiem, że w tym scenariuszu można wykorzystać pliki * .hbm.xml dla różnych środowisk, jednak chciałbym użyć adnotacji, ponieważ istnieją mniej pliki do utrzymania.

+2

Krótka odpowiedź, nie, nie jest. Średnia odpowiedź, możesz * użyć * procesora adnotacji, aby wykonać zadanie, ale musisz wtedy zachować procesor adnotacji. –

+0

@RC post jako odpowiedź. – djechlin

+0

@djechlin done;) –

Odpowiedz

6

(na żądanie)

Krótka odpowiedź, nie, nie jest. Średnia odpowiedź, do wykonania zadania można użyć procesora adnotacji, ale trzeba wtedy zachować procesor adnotacji.

Powiązane problemy