Mehrfachableitungen von Entitäten

LStrike

Mitglied
Hallo zusammen,

ich bin seit Ende April 2013 unter die J EE Entwickler gekommen.
Ich kann soweit sagen, die Arbeit mit J EE 6 inkl. JPA und Hibernate, CDI, JSF und PrimeFaces macht mir Spaß und ich lerne jeden Tag neues.


Nun zu einer aktuellen Fragestellung:

Das man in J EE Klassen (oder besser Entitäten) wie in Java ableiten kann ist mir bewusst.
Auch habe ich eine grobe Vorstellung davon, wie man so etwas macht.

Aber ich bin mir nicht sicher ob ich es richtig gemacht habe.

Umgesetzt habe ich eine "einfach Ableitung" wie folgt:

Code:
@Entity
@Table(name = "BASE_RESSOURCE", schema = "JCCPRINT")
@Inheritance(strategy = InheritanceType.JOINED)
public class Ressource{

private Integer id;

....

//Getter and Setter
@Id
  @Column(name = "ID", unique = true, nullable = false, precision = 22, scale = 0)
  @NotNull
  @GeneratedValue(strategy = GenerationType.TABLE, generator = "key_gen")
  public Integer getId() {
    return this.id;
  }

  public void setId(Integer id) {
    this.id = id;
  }
  
  ......

}

@Entity
@Table(name="MWEB_SYSTEMLANDSCHAFT_RES", schema = "JCCPRINT")
@Inheritance(strategy = InheritanceType.JOINED)
public class SystemlandschaftRessource extends Ressource{

private String dokumentationsLink;

...

//Getter and Setter
@Column(name = "DOKUMENTATIONSLINK", length = 500)
	@Size(max=500)
	public String getDokumentationsLink() {
		return dokumentationsLink;
	}

	public void setDokumentationsLink(String dokumentationsLink) {
		this.dokumentationsLink = dokumentationsLink;
	}

	....
}

Dazu erst einmal die Frage, ist das so richtig?

Meine zweite Frage wäre dann, wie könnte ich jetzt eine Ableitung von der SystemlandschaftRessource machen?


Was auch nicht verkehrt wäre, gibt es eine vernünftige Dokumentation, Tutorial oder Literatur, wo auch dieses Thema behandelt wird. In der "Standarddokumentation" von Oracle - The Java EE 6 Tutorial bin ich diesbezüglich nicht fündig geworden.

Grüße
Markus
 

KSG9|sebastian

Top Contributor
Die Vererbung von JPA-Entitäten unterscheidet sich nicht von der "normalen" Vererbung in Java.

Java:
@Entity
class UpEntity {

}

@Entity
class SubEntity extends UpEntity {

}

@Entity
class SubSubEntity extends SubEntity {

}

@Entity
class AnotherSub extends UpEntity {

}

Vererbungstyp siehe hier: InheritanceType (Java EE 6 )

Oder was genau ist unklar?
 

LStrike

Mitglied
Moin moin,

"Normale" Java-Ableitungen sind mir bekannt, mir ging es vielmehr darum, wie ich mit den Annotationen umgehen muss, dass ist mir noch nicht ganz klar.

Eine kurze Erläuterung oder Literaturhinweis würde mir schon reichen.

Grüße
Markus
 

KSG9|sebastian

Top Contributor
6.  Inheritance

Ganz grob..
Single Table: Die ganze Klassenhierarchie wird in einer Tabelle gespeichert.
Joined: Eine Tabelle pro Klasse. Die Felder der Klasse werden in der Tabelle gespeichert, die Felder der superklasse in einer "Obertabelle"
Table per Class: Eine Tabelle pro Klasse incl aller Felder sowie Felder der Superklassen
 
Ähnliche Java Themen

Ähnliche Java Themen


Oben