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;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY, cascade = ALL)
|
||||
@JoinTable(name = "component", joinColumns = @JoinColumn(name = "basepacket_id"), inverseJoinColumns = @JoinColumn(name = "basecomponent_id"))
|
||||
private Set<Component> components;
|
||||
|
||||
@OneToMany(fetch = FetchType.LAZY, cascade = ALL)
|
||||
|
@ -8,6 +8,7 @@ import static javax.persistence.GenerationType.SEQUENCE;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.persistence.Column;
|
||||
@ -18,6 +19,7 @@ import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.OneToMany;
|
||||
import javax.persistence.Query;
|
||||
import javax.persistence.SequenceGenerator;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.Temporal;
|
||||
@ -98,7 +100,10 @@ public class Pac extends AbstractEntity implements Serializable {
|
||||
this.created = new Date();
|
||||
this.webserverGroup = "httpd";
|
||||
this.curINetAddr = hive.getInetAddr();
|
||||
initPacComponents(basePac);
|
||||
}
|
||||
|
||||
private void initPacComponents(BasePac basePac) {
|
||||
pacComponents = new HashSet<PacComponent>();
|
||||
Date today = new Date();
|
||||
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) {
|
||||
return "obj.name='" + humanKey + "'";
|
||||
}
|
||||
@ -226,9 +241,13 @@ public class Pac extends AbstractEntity implements Serializable {
|
||||
}
|
||||
|
||||
public PacComponent getPacComponent(String feature) {
|
||||
for (PacComponent pc : getPacComponents())
|
||||
if (feature.equals(pc.getBaseComponent().getFeature()))
|
||||
return pc;
|
||||
if (pacComponents != null) {
|
||||
for (PacComponent pc : pacComponents) {
|
||||
if (feature.equals(pc.getBaseComponent().getFeature())) {
|
||||
return pc;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -115,8 +115,6 @@ public class PacModuleImpl extends AbstractModuleImpl {
|
||||
UnixUser loginUser = getTransaction().getLoginUser();
|
||||
if (!(entity instanceof Pac)) {
|
||||
throw new AuthorisationException(loginUser, "update", entity);
|
||||
// } else {
|
||||
// Pac pac = (Pac) entity;
|
||||
}
|
||||
needsWriteAccessOn(entity, "update");
|
||||
return super.update(entity);
|
||||
|
Loading…
Reference in New Issue
Block a user