# HG changeset patch # User mschaefer # Date 1537284429 -7200 # Node ID c347512a07bd2ef9b50bfc3ed121edf4ae927432 # Parent 504f63512379359f3a76292ab64666926966c050 Fixed: finding attributes record first case sensitive, insensitive then as fallback diff -r 504f63512379 -r c347512a07bd backend/src/main/java/org/dive4elements/river/importer/ImportAttribute.java --- a/backend/src/main/java/org/dive4elements/river/importer/ImportAttribute.java Tue Sep 18 12:21:17 2018 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/ImportAttribute.java Tue Sep 18 17:27:09 2018 +0200 @@ -59,6 +59,26 @@ if (this.peer != null) return this.peer; final Session session = ImporterSession.getInstance().getDatabaseSession(); + final Query query = session.createQuery("FROM Attribute WHERE value=:value"); + query.setString("value", this.value.trim()); + final List attributes = query.list(); + if (attributes.isEmpty()) { + this.peer = getPeerCaseInsensitive(); + if (this.peer == null) { + this.peer = new Attribute(this.value); + session.save(this.peer); + } + } + else { + this.peer = attributes.get(0); + } + return this.peer; + } + + private Attribute getPeerCaseInsensitive() { + if (this.peer != null) + return this.peer; + final Session session = ImporterSession.getInstance().getDatabaseSession(); final Query query = session.createQuery("FROM Attribute WHERE lower(value)=:value"); query.setString("value", this.value.trim().toLowerCase()); final List attributes = query.list();