Guten Tag zusammen !!
Ich hab hier im Forum ja schon echt super Hilfe für mein Projekt bekommen da muss ich erstmal echt ein Lob aussprechen :toll:
Ich habe gerade ein kleines Problem.
Ich habe mehrere Entity Objekte (ACL,Benutzer,Gruppe,Methode)
Ein ACL Objekt besteht aus jeweils einem Eintrag der Objekte (Methode, Gruppe, Benutzer).
Die Einträge (Benutzer,Gruppe) können "null" sein, der Eintrag Methode hingegen nicht.
Die Darstellung der Tabellen in Tables oder Selectboxen klappt super, aber beim erstellen eines neuen
ACL Objektes habe ich das Problem das auch gleichzeitig ein neues Methoden,Gruppen und Benutzer Objekt erstellt und persisiert wird. Dadurch erhalte ich unnötige redundanz in meinen Tabellen(Methode,Gruppe,Benutzer)... :-(
Hier einmal ein Bild wie es sein sollte(ACL eintrag manuell erstellt):

Und hier wie es wirklich ist:

Mann sieht auf dem 2ten bild das der ACL Eintrag zwar in dem Sinne korekt ist, aber nicht die auf die vorhandenen Objekte referenziert und stattdessen neue erstellt.... :-/
Ich glaube das es daran liegt das ich in meinem PresentationModell neue Objekte erstelle und diese dann dem Objekt ACL hinzufüge....
ich würde aber gerne auf die Objekte referenzieren die ich schon in der Selectbox habe....

....und keine neuen erstellen......
Aber wenn ich in der Methode storeAcl() mit gettern anstatt settern versuche zu arbeiten geht das auch nicht.....:bahnhof:
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt und hoffe ihr kölnnt mir hier weiterhelfen...
Grüße, Alex !!
Ich hab hier im Forum ja schon echt super Hilfe für mein Projekt bekommen da muss ich erstmal echt ein Lob aussprechen :toll:
Ich habe gerade ein kleines Problem.
Ich habe mehrere Entity Objekte (ACL,Benutzer,Gruppe,Methode)
Ein ACL Objekt besteht aus jeweils einem Eintrag der Objekte (Methode, Gruppe, Benutzer).
Die Einträge (Benutzer,Gruppe) können "null" sein, der Eintrag Methode hingegen nicht.
Die Darstellung der Tabellen in Tables oder Selectboxen klappt super, aber beim erstellen eines neuen
ACL Objektes habe ich das Problem das auch gleichzeitig ein neues Methoden,Gruppen und Benutzer Objekt erstellt und persisiert wird. Dadurch erhalte ich unnötige redundanz in meinen Tabellen(Methode,Gruppe,Benutzer)... :-(
Hier einmal ein Bild wie es sein sollte(ACL eintrag manuell erstellt):

Und hier wie es wirklich ist:

Mann sieht auf dem 2ten bild das der ACL Eintrag zwar in dem Sinne korekt ist, aber nicht die auf die vorhandenen Objekte referenziert und stattdessen neue erstellt.... :-/
Ich glaube das es daran liegt das ich in meinem PresentationModell neue Objekte erstelle und diese dann dem Objekt ACL hinzufüge....
Java:
package com.alex.aclgenerator;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
/**
*
* @author schmack
*/
@Named
@RequestScoped
public class AclPM {
private Methode pm_methode = new Methode();
private Gruppe pm_gruppe = new Gruppe();
private Benutzer pm_benutzer = new Benutzer();
private Acl pm_acl = new Acl();
@EJB
AclBean bean;
//---------------------------------------------------
public Methode getPm_methode() {
return pm_methode;
}
public void setPm_methode(Methode pm_methode) {
this.pm_methode = pm_methode;
}
public Gruppe getPm_gruppe() {
return pm_gruppe;
}
public void setPm_gruppe(Gruppe pm_gruppe) {
this.pm_gruppe = pm_gruppe;
}
public Benutzer getPm_benutzer() {
return pm_benutzer;
}
public void setPm_benutzer(Benutzer pm_benutzer) {
this.pm_benutzer = pm_benutzer;
}
public Acl getPm_acl() {
return pm_acl;
}
public void setPm_acl(Acl pm_acl) {
this.pm_acl = pm_acl;
}
public List<Methode> getMethods() {
return bean.getMethods();
}
public List<Benutzer> getUsers() {
return bean.getUsers();
}
public List<Gruppe> getGroups() {
return bean.getGroups();
}
public List<Acl> getAcls() {
return bean.getAcls();
}
//---------------------------------------------------------
public void storeMethod(){
System.out.println("Methode gespeichert!");
bean.addEntry(pm_methode);
}
public void storeGroup(){
System.out.println("Gruppe gespeichert!");
bean.addEntry(pm_gruppe);
}
public void storeUser(){
System.out.println("Benutzer gespeichert!");
bean.addEntry(pm_benutzer);
}
public void storeAcl(){
pm_acl.setMethode(pm_methode);
pm_acl.setGruppe(pm_gruppe);
pm_acl.setBenutzer(pm_benutzer);
bean.addAcl(pm_acl);
System.out.println("ACL gespeichert!");
}
}//endclass
ich würde aber gerne auf die Objekte referenzieren die ich schon in der Selectbox habe....

HTML:
<p:selectOneMenu id="selectone_methods" value="#{aclPM.pm_methode.name}"
style="margin-left: 5px;">
<f:selectItems value="#{aclPM.methods}" var="method"
itemValue="#{method.name}" itemLabel="#{method.name}" />
</p:selectOneMenu>
<p:selectOneMenu id="selectone_groups" value="#{aclPM.pm_gruppe.name}"
style="margin-left: 5px;">
<f:selectItems value="#{aclPM.groups}" var="group"
itemValue="#{group.name}" itemLabel="#{group.name}" />
</p:selectOneMenu>
<p:selectOneMenu id="selectone_users" value="#{aclPM.pm_benutzer.name}"
style="margin-left: 5px;">
<f:selectItems value="#{aclPM.users}" var="user"
itemValue="#{user.name}" itemLabel="#{user.name}" />
</p:selectOneMenu>
....und keine neuen erstellen......
Aber wenn ich in der Methode storeAcl() mit gettern anstatt settern versuche zu arbeiten geht das auch nicht.....:bahnhof:
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt und hoffe ihr kölnnt mir hier weiterhelfen...
Grüße, Alex !!
Zuletzt bearbeitet: