2010-11-20 14 views
1

Hallo Ich habe ein Problem mit der Vererbung in EJB. Ich zeige Ihnen meinen Code nachWie bekomme ich den Wert von @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 { 
} 

, wie der Wert von

PROJ_TYPE

zu bekommen. die einzige Lösung, die ich nativeQuery benutze, aber gibt es eine andere Lösung ???

sorry für mein Englisch und danken Ihnen im Voraus

+0

Warum brauchen Sie das? Was ist das Ziel? –

+0

mögliches Duplikat von [Wie man den DiscriminatorValue zur Laufzeit erhält] (http://stackoverflow.com/questions/3005383/how-to-get-the-discriminatorvalue-at-run-time) –

Antwort

2

Es ist auch möglich sein sollte, den Unterscheider als zusätzliche Spalte, so lange abzubilden, wie es nicht aktualisierbar oder einsetzbar ist.

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

Ok danke ich werde das versuchen mein Problem war, wie man Wert von PROJ_TYPE von der Datenbank erhält, weil ich kein get für PROJ_TYPE in der Entität habe – kohan

Verwandte Themen