ingo@198: package de.intevation.flys.importer; ingo@198: ingo@198: import java.math.BigDecimal; ingo@198: import java.util.List; ingo@198: ingo@198: import org.hibernate.Session; ingo@198: import org.hibernate.Query; ingo@198: ingo@198: import de.intevation.flys.model.DischargeTable; ingo@198: import de.intevation.flys.model.DischargeTableValue; ingo@198: ingo@198: ingo@198: public class ImportDischargeTableValue ingo@198: { ingo@198: private Integer id; ingo@198: ingo@198: private BigDecimal q; ingo@198: private BigDecimal w; ingo@198: ingo@198: private ImportDischargeTable dischargeTable; ingo@198: ingo@198: private DischargeTableValue peer; ingo@198: ingo@198: ingo@198: public ImportDischargeTableValue() { ingo@198: } ingo@198: ingo@198: ingo@198: public ImportDischargeTableValue(BigDecimal q, BigDecimal w) { ingo@198: this.dischargeTable = dischargeTable; ingo@198: this.q = q; ingo@198: this.w = w; ingo@198: } ingo@198: ingo@198: ingo@198: public DischargeTableValue getPeer(DischargeTable dischargeTable) { ingo@198: if (peer == null) { ingo@198: Session session = Importer.sessionHolder.get(); ingo@198: ingo@198: Query query = session.createQuery( ingo@198: "from DischargeTableValue where " + ingo@198: "dischargeTable.id=:tableId and q=:q and w=:w"); ingo@198: query.setParameter("tableId", dischargeTable.getId()); ingo@198: query.setParameter("q", q); ingo@198: query.setParameter("w", w); ingo@198: ingo@198: List dischargeTableValues = query.list(); ingo@198: if (dischargeTableValues.isEmpty()) { ingo@198: peer = new DischargeTableValue(dischargeTable, q, w); ingo@198: session.save(peer); ingo@198: } ingo@198: else { ingo@198: peer = dischargeTableValues.get(0); ingo@198: } ingo@198: } ingo@198: ingo@198: return peer; ingo@198: } ingo@198: }