Comment récupérer EmbeddedId annotation
Bonjour à tous,
J'aurai deux question à soumettre :
1. je souhaite récupérer l'annotation embeddedId de l'EJB ci dessus
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
@Entity
@Table(name = "film_actor")
@NamedQueries({@NamedQuery(name = "FilmActor.findByActorId", query = "SELECT f FROM FilmActor f WHERE f.filmActorPK.actorId = :actorId"), @NamedQuery(name = "FilmActor.findByFilmId", query = "SELECT f FROM FilmActor f WHERE f.filmActorPK.filmId = :filmId"), @NamedQuery(name = "FilmActor.findByLastUpdate", query = "SELECT f FROM FilmActor f WHERE f.lastUpdate = :lastUpdate")})
public class FilmActor implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected FilmActorPK filmActorPK;
@Column(name = "last_update", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date lastUpdate;
... |
pour ce faire j'utilise ce bout de code !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
final Field[] fields = classEJB.getDeclaredFields();
for (Field field : fields)
{
final Id id = field.getAnnotation(Id.class);
for (Annotation anno : field.getAnnotations())
{
LOGGER.debug("annot : " +anno.annotationType().getName());
}
if (id == null)
{
final EmbeddedId embeddedId = field.getAnnotation(EmbeddedId.class);
LOGGER.debug("embeddedId = " + embeddedId);
if(embeddedId != null)
{
LOGGER.debug(columnEJB.name() + " is a embeddedPK");
LOGGER.debug(embeddedId.annotationType().getSimpleName());
}
}
else
{
LOGGER.debug(columnEJB.name() + " is a PK");
}
} |
Mais malheureusement le résultat me donne la valeur "null"
2. Même question que pour la premiere mais concernant l'annotation "joinColumn"
Je vous remercie d'avance pour le temps que vous me consacrez
Bonne we à tous.