Mercurial > lada > lada-server
changeset 1126:70b51893f15b
Fix UNIQUE-constraint and respective validation.
Btw. improved readability of DEFAULT definition.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Mon, 31 Oct 2016 18:09:45 +0100 (2016-10-31) |
parents | f9328849a53c |
children | 997899aba991 |
files | db_schema/lada_schema.sql src/main/java/de/intevation/lada/validation/rules/probe/UniqueHauptprobenNr.java |
diffstat | 2 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/db_schema/lada_schema.sql Mon Oct 31 17:14:49 2016 +0100 +++ b/db_schema/lada_schema.sql Mon Oct 31 18:09:45 2016 +0100 @@ -192,7 +192,10 @@ CREATE TABLE probe ( id serial PRIMARY KEY, - id_alt character varying(20) DEFAULT (('sss'::text || lpad(((nextval('land.probe_probe_id_seq'::regclass))::character varying)::text, 12, '0'::text)) || 'Y'::text) NOT NULL, + id_alt character varying(20) UNIQUE NOT NULL + DEFAULT 'sss' + || lpad(nextval('land.probe_probe_id_seq')::varchar, 12, '0') + || 'Y', test boolean DEFAULT false NOT NULL, mst_id character varying(5) NOT NULL REFERENCES stammdaten.mess_stelle, labor_mst_id character varying(5) NOT NULL REFERENCES stammdaten.mess_stelle, @@ -214,7 +217,7 @@ solldatum_beginn timestamp without time zone, solldatum_ende timestamp without time zone, tree_modified timestamp without time zone DEFAULT now(), - UNIQUE (mst_id, hauptproben_nr, id_alt), + UNIQUE (mst_id, hauptproben_nr), CHECK(solldatum_beginn <= solldatum_ende) ); CREATE TRIGGER letzte_aenderung_probe BEFORE UPDATE ON probe FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung();
--- a/src/main/java/de/intevation/lada/validation/rules/probe/UniqueHauptprobenNr.java Mon Oct 31 17:14:49 2016 +0100 +++ b/src/main/java/de/intevation/lada/validation/rules/probe/UniqueHauptprobenNr.java Mon Oct 31 18:09:45 2016 +0100 @@ -42,6 +42,7 @@ repo.entityManager("land"), Probe.class); builder.and("hauptprobenNr", probe.getHauptprobenNr()); + builder.and("mstId", probe.getMstId()); Response response = repo.filter(builder.getQuery(), "land"); if (!((List<Probe>)response.getData()).isEmpty()) { Probe found = ((List<Probe>)response.getData()).get(0);