fix or-mapping of pac-components
This commit is contained in:
parent
75a68d707a
commit
5056e46610
@ -53,6 +53,7 @@ public class BasePac implements Serializable {
|
|||||||
private boolean valid;
|
private boolean valid;
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.LAZY, cascade = ALL)
|
@OneToMany(fetch = FetchType.LAZY, cascade = ALL)
|
||||||
|
@JoinTable(name = "component", joinColumns = @JoinColumn(name = "basepacket_id"), inverseJoinColumns = @JoinColumn(name = "basecomponent_id"))
|
||||||
private Set<Component> components;
|
private Set<Component> components;
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.LAZY, cascade = ALL)
|
@OneToMany(fetch = FetchType.LAZY, cascade = ALL)
|
||||||
|
@ -8,6 +8,7 @@ import static javax.persistence.GenerationType.SEQUENCE;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
@ -18,6 +19,7 @@ import javax.persistence.Id;
|
|||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.ManyToOne;
|
import javax.persistence.ManyToOne;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.Query;
|
||||||
import javax.persistence.SequenceGenerator;
|
import javax.persistence.SequenceGenerator;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
@ -98,7 +100,10 @@ public class Pac extends AbstractEntity implements Serializable {
|
|||||||
this.created = new Date();
|
this.created = new Date();
|
||||||
this.webserverGroup = "httpd";
|
this.webserverGroup = "httpd";
|
||||||
this.curINetAddr = hive.getInetAddr();
|
this.curINetAddr = hive.getInetAddr();
|
||||||
|
initPacComponents(basePac);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initPacComponents(BasePac basePac) {
|
||||||
pacComponents = new HashSet<PacComponent>();
|
pacComponents = new HashSet<PacComponent>();
|
||||||
Date today = new Date();
|
Date today = new Date();
|
||||||
for (Component comp : basePac.getComponents()) {
|
for (Component comp : basePac.getComponents()) {
|
||||||
@ -109,6 +114,16 @@ public class Pac extends AbstractEntity implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize(EntityManager em, UnixUser loginUser) {
|
||||||
|
super.initialize(em, loginUser);
|
||||||
|
Query qBasepac = em.createQuery("SELECT b FROM BasePacs b WHERE b.valid = :valid ORDER BY b.name");
|
||||||
|
qBasepac.setParameter("valid", Boolean.TRUE);
|
||||||
|
List<?> resultList = qBasepac.getResultList();
|
||||||
|
basepac = (BasePac) resultList.get(0);
|
||||||
|
initPacComponents(basepac);
|
||||||
|
}
|
||||||
|
|
||||||
public static String createQueryFromStringKey(String humanKey) {
|
public static String createQueryFromStringKey(String humanKey) {
|
||||||
return "obj.name='" + humanKey + "'";
|
return "obj.name='" + humanKey + "'";
|
||||||
}
|
}
|
||||||
@ -226,9 +241,13 @@ public class Pac extends AbstractEntity implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PacComponent getPacComponent(String feature) {
|
public PacComponent getPacComponent(String feature) {
|
||||||
for (PacComponent pc : getPacComponents())
|
if (pacComponents != null) {
|
||||||
if (feature.equals(pc.getBaseComponent().getFeature()))
|
for (PacComponent pc : pacComponents) {
|
||||||
|
if (feature.equals(pc.getBaseComponent().getFeature())) {
|
||||||
return pc;
|
return pc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,8 +115,6 @@ public class PacModuleImpl extends AbstractModuleImpl {
|
|||||||
UnixUser loginUser = getTransaction().getLoginUser();
|
UnixUser loginUser = getTransaction().getLoginUser();
|
||||||
if (!(entity instanceof Pac)) {
|
if (!(entity instanceof Pac)) {
|
||||||
throw new AuthorisationException(loginUser, "update", entity);
|
throw new AuthorisationException(loginUser, "update", entity);
|
||||||
// } else {
|
|
||||||
// Pac pac = (Pac) entity;
|
|
||||||
}
|
}
|
||||||
needsWriteAccessOn(entity, "update");
|
needsWriteAccessOn(entity, "update");
|
||||||
return super.update(entity);
|
return super.update(entity);
|
||||||
|
Loading…
Reference in New Issue
Block a user