HSAdmin Backend Domains, E-Mail, Datenbanken
Peter Hormanns
2013-01-21 5056e46610886dd4c4ed147959e9e0fc6568ec15
fix or-mapping of pac-components
3 files modified
28 ■■■■ changed files
hsarback/src/de/hsadmin/mods/pac/BasePac.java 1 ●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/pac/Pac.java 25 ●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/pac/PacModuleImpl.java 2 ●●●●● patch | view | raw | blame | history
hsarback/src/de/hsadmin/mods/pac/BasePac.java
@@ -53,6 +53,7 @@
    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)
hsarback/src/de/hsadmin/mods/pac/Pac.java
@@ -8,6 +8,7 @@
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.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 @@
        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()) {
@@ -107,6 +112,16 @@
                    today, null);
            pacComponents.add(pacComp);
        }
    }
    @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) {
@@ -226,9 +241,13 @@
    }
    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;
    }
hsarback/src/de/hsadmin/mods/pac/PacModuleImpl.java
@@ -115,8 +115,6 @@
        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);