Hallo,
ich arbeite zum ersten mal mit dem JPA und stehe nun vor folgendem Problem.
Ich habe 3 Tabellen, wobei 2 davon eine m:m Beziehung pflegen und die 3. ist die entsprechende Verbundtabelle.
User
- id
- name
Permission
- id
- name
User_Permission
- uid
- pid
- value
Dabei wollte ich nur die User und Permission entsprechend in meiner Anwendung kapseln. Jedoch weiß ich nun nicht, wie ich entsprechend das Feld 'value' von der Verbundtabelle in das Permission Objekt rein bekomme.
Folgenden Aufbau habe ich momentan (WIP - also vieles noch nicht ganz soo richtig...)
Vielleicht hab ich auch einiges bisher schon falsch gemacht, ich finde kein allzu gutes Tutorial dafür. Buchempfehlungen nehme ich auch gerne entgegen.
Wo muss ich nun ansetzen, damit ich entsprechend die 'value' aus der Verbundtabelle in meiner EPermission habe.
Btw. Kann ich dann mit diesen JPA Klassen auch via EBeans auf die Datenbank zugreifen? denn ich möchte EBeans nutzen um dann die Datenbankverbindung zu managen.
Wenn ich schon beim Fragen bin
, wie schaut es i.A. mit der Geschwindigkeit von JPA gestalteten ORM aus? bzw. wie viel langsamer ist es in etwa. Pi*Daumen die Hälfte?
Danke,
Blackskyliner
ich arbeite zum ersten mal mit dem JPA und stehe nun vor folgendem Problem.
Ich habe 3 Tabellen, wobei 2 davon eine m:m Beziehung pflegen und die 3. ist die entsprechende Verbundtabelle.
User
- id
- name
Permission
- id
- name
User_Permission
- uid
- pid
- value
Dabei wollte ich nur die User und Permission entsprechend in meiner Anwendung kapseln. Jedoch weiß ich nun nicht, wie ich entsprechend das Feld 'value' von der Verbundtabelle in das Permission Objekt rein bekomme.
Folgenden Aufbau habe ich momentan (WIP - also vieles noch nicht ganz soo richtig...)
Java:
@Entity
@Table(name="user")
public class EUser {
@Id
Integer id;
String userName;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
Java:
@Entity
@Table(name="permission")
public class EPermission {
/**
* The auto increment and unique identifier of this permission.
*/
private Integer id;
/**
* The full quallified permission string
*/
private String permissionName;
/**
* The Users which does have this certain permission
*/
private Set<EUser> users;
@Id
@GeneratedValue
@Column(name="id")
public Integer getId() {
return id;
}
@SuppressWarnings("unused")
private void setId(Integer id) {
this.id = id;
}
@Column(name="name", nullable=false, length=500)
public String getPermissionName() {
return permissionName;
}
public void setPermissionName(String permissionName) {
this.permissionName = permissionName;
}
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="user_permission",
joinColumns = { @JoinColumn(name="pid") },
inverseJoinColumns = { @JoinColumn(name="uid") })
public Set<EUser> getUsers() { return users; }
}
Vielleicht hab ich auch einiges bisher schon falsch gemacht, ich finde kein allzu gutes Tutorial dafür. Buchempfehlungen nehme ich auch gerne entgegen.
Wo muss ich nun ansetzen, damit ich entsprechend die 'value' aus der Verbundtabelle in meiner EPermission habe.
Btw. Kann ich dann mit diesen JPA Klassen auch via EBeans auf die Datenbank zugreifen? denn ich möchte EBeans nutzen um dann die Datenbankverbindung zu managen.
Wenn ich schon beim Fragen bin
Danke,
Blackskyliner