2010-11-20 4 views
1

bonjour J'ai un problème avec l'héritage dans EJB. Je vous montre mon code aprèscomment obtenir la valeur de @DiscriminatorColumn()?

@Entity 
@Inheritance(strategy=InheritanceType.JOINED) 
@DiscriminatorColumn(name="PROJ_TYPE") 
@Table(name="PROJECT") 
public abstract class Project { 
    @Id 
    private long id; 
    ... 
} 

@Entity 
@DiscriminatorValue("L"); 
@Table(name="LARGEPROJECT") 
public class LargeProject extends Project { 
    private BigDecimal budget; 
} 

@Entity 
@DiscriminatorValue("S"); 
@Table(name="SMALLPROJECT") 
public class SmallProject extends Project { 
} 

comment obtenir la valeur de

PROJ_TYPE

. la seule solution que j'utilise nativeQuery, mais y at-il une autre solution ???

désolé pour mon anglais et merci à l'avance

+0

Pourquoi avez-vous besoin de cela? Quel est le but? –

+0

duplicata possible de [Comment obtenir le DiscriminatorValue au moment de l'exécution] (http://stackoverflow.com/questions/3005383/how-to-get-the-discriminatorvalue-at-run-time) –

Répondre

2

Il devrait également être possible de cartographier le discriminateur comme une colonne supplémentaire, tant que ce n'est pas actualisable ou insérable.

@Column(name="PROJ_TYPE", nullable=false, updatable=false, insertable=false) 
private String projectType; 
+0

Ok merci je vais essayer ça mon problème était comment obtenir la valeur de PROJ_TYPE à partir de la base de données parce que je n'ai pas de get pour PROJ_TYPE dans l'entité – kohan