Mercurial > dive4elements > river
diff backend/src/main/java/org/dive4elements/river/importer/ImportAnnotationType.java @ 8974:a275ddf7a3a1
Added some trim and lowercase in the where clauses of the selects of existing recordsets; added AnnotationType select
author | mschaefer |
---|---|
date | Tue, 03 Apr 2018 10:37:30 +0200 |
parents | 5e38e2924c07 |
children |
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/ImportAnnotationType.java Tue Apr 03 10:29:57 2018 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/ImportAnnotationType.java Tue Apr 03 10:37:30 2018 +0200 @@ -8,56 +8,57 @@ package org.dive4elements.river.importer; +import java.util.List; + +import org.apache.log4j.Logger; import org.dive4elements.river.model.AnnotationType; - +import org.hibernate.Query; import org.hibernate.Session; -import org.hibernate.Query; - -import java.util.List; public class ImportAnnotationType implements Comparable<ImportAnnotationType> { + private static final Logger log = Logger.getLogger(ImportAnnotationType.class); protected String name; protected AnnotationType peer; public ImportAnnotationType() { } - public ImportAnnotationType(String name) { + public ImportAnnotationType(final String name) { this.name = name; } - public int compareTo(ImportAnnotationType other) { - return name.compareTo(other.name); + @Override + public int compareTo(final ImportAnnotationType other) { + return this.name.compareTo(other.name); } public String getName() { - return name; + return this.name; } - public void setName(String name) { + public void setName(final String name) { this.name = name; } public AnnotationType getPeer() { - if (peer == null) { - Session session = ImporterSession.getInstance() - .getDatabaseSession(); - Query query = session.createQuery( - "from AnnotationType where name=:name"); - query.setParameter("name", name); - List<AnnotationType> types = query.list(); - if (types.isEmpty()) { - peer = new AnnotationType(name); - session.save(peer); - } - else { - peer = types.get(0); - } + if (this.peer != null) + return this.peer; + final Session session = ImporterSession.getInstance().getDatabaseSession(); + final Query query = session.createQuery("FROM AnnotationType WHERE lower(name)=:name"); + query.setParameter("name", this.name.trim().toLowerCase()); + final List<AnnotationType> types = query.list(); + if (types.isEmpty()) { + this.peer = new AnnotationType(this.name); + session.save(this.peer); + log.info(String.format("Create new database instance: %d, '%s'", this.peer.getId(), this.name)); } - return peer; + else { + this.peer = types.get(0); + } + return this.peer; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :