Bonjour à tous,

J'aurai deux question à soumettre :

1. je souhaite récupérer l'annotation embeddedId de l'EJB ci dessus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.