Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/importer/ImportAttribute.java @ 9488:c347512a07bd
Fixed: finding attributes record first case sensitive, insensitive then as fallback
author | mschaefer |
---|---|
date | Tue, 18 Sep 2018 17:27:09 +0200 |
parents | a275ddf7a3a1 |
children |
comparison
equal
deleted
inserted
replaced
9487:504f63512379 | 9488:c347512a07bd |
---|---|
57 | 57 |
58 public Attribute getPeer() { | 58 public Attribute getPeer() { |
59 if (this.peer != null) | 59 if (this.peer != null) |
60 return this.peer; | 60 return this.peer; |
61 final Session session = ImporterSession.getInstance().getDatabaseSession(); | 61 final Session session = ImporterSession.getInstance().getDatabaseSession(); |
62 final Query query = session.createQuery("FROM Attribute WHERE value=:value"); | |
63 query.setString("value", this.value.trim()); | |
64 final List<Attribute> attributes = query.list(); | |
65 if (attributes.isEmpty()) { | |
66 this.peer = getPeerCaseInsensitive(); | |
67 if (this.peer == null) { | |
68 this.peer = new Attribute(this.value); | |
69 session.save(this.peer); | |
70 } | |
71 } | |
72 else { | |
73 this.peer = attributes.get(0); | |
74 } | |
75 return this.peer; | |
76 } | |
77 | |
78 private Attribute getPeerCaseInsensitive() { | |
79 if (this.peer != null) | |
80 return this.peer; | |
81 final Session session = ImporterSession.getInstance().getDatabaseSession(); | |
62 final Query query = session.createQuery("FROM Attribute WHERE lower(value)=:value"); | 82 final Query query = session.createQuery("FROM Attribute WHERE lower(value)=:value"); |
63 query.setString("value", this.value.trim().toLowerCase()); | 83 query.setString("value", this.value.trim().toLowerCase()); |
64 final List<Attribute> attributes = query.list(); | 84 final List<Attribute> attributes = query.list(); |
65 if (attributes.isEmpty()) { | 85 if (attributes.isEmpty()) { |
66 this.peer = new Attribute(this.value); | 86 this.peer = new Attribute(this.value); |