fixing lib

This commit is contained in:
Luca Frosini 2021-03-18 17:05:23 +01:00
parent 59adc08fcb
commit 3c27c95cf3
2 changed files with 12 additions and 6 deletions

View File

@ -55,7 +55,7 @@ public class PostgreSQLQuery {
public String getSQLInsertCommand(Record record) throws Exception { public String getSQLInsertCommand(Record record) throws Exception {
stringBuffer = new StringBuffer(); stringBuffer = new StringBuffer();
RecordToDBFields recordToDBFields = RecordToDBMapping.getRecordToDB(record.getClass()); RecordToDBFields recordToDBFields = RecordToDBMapping.getRecordToDBFields(record.getClass());
stringBuffer.append("INSERT INTO "); stringBuffer.append("INSERT INTO ");
stringBuffer.append(recordToDBFields.getTableName()); stringBuffer.append(recordToDBFields.getTableName());

View File

@ -6,6 +6,7 @@ import java.util.Map;
import org.gcube.documentstore.persistence.PersistenceBackendConfiguration; import org.gcube.documentstore.persistence.PersistenceBackendConfiguration;
import org.gcube.documentstore.records.AggregatedRecord; import org.gcube.documentstore.records.AggregatedRecord;
import org.gcube.documentstore.records.Record; import org.gcube.documentstore.records.Record;
import org.gcube.documentstore.records.RecordUtility;
public class RecordToDBMapping { public class RecordToDBMapping {
@ -29,17 +30,22 @@ public class RecordToDBMapping {
recordToDBInfo= new HashMap<>(); recordToDBInfo= new HashMap<>();
} }
public static synchronized void addRecordToDB(Class<? extends AggregatedRecord<?, ?>> clz, PersistenceBackendConfiguration configuration) throws Exception { public static void addRecordToDB(Class<? extends AggregatedRecord<?, ?>> clz, PersistenceBackendConfiguration configuration) throws Exception {
String type = getRecordTypeByClass(clz); String type = getRecordTypeByClass(clz);
RecordToDBFields recordToDBMapper = new RecordToDBFields(type, clz); getRecordToDBFields(clz);
classToRecordToDBMapper.put(type, recordToDBMapper);
RecordToDBConnection recordDBInfo = new RecordToDBConnection(type, clz, configuration); RecordToDBConnection recordDBInfo = new RecordToDBConnection(type, clz, configuration);
recordToDBInfo.put(type, recordDBInfo); recordToDBInfo.put(type, recordDBInfo);
} }
public static synchronized RecordToDBFields getRecordToDB(Class<? extends Record> clz) throws Exception { public static synchronized RecordToDBFields getRecordToDBFields(Class<? extends Record> clz) throws Exception {
String type = getRecordTypeByClass(clz); String type = getRecordTypeByClass(clz);
return classToRecordToDBMapper.get(type); RecordToDBFields recordToDBFields = classToRecordToDBMapper.get(type);
if(recordToDBFields == null) {
Class<? extends AggregatedRecord<?,?>> aggregatedRecordClass = RecordUtility.getAggregatedRecordClass(type);
recordToDBFields = new RecordToDBFields(type, aggregatedRecordClass);
classToRecordToDBMapper.put(type, recordToDBFields);
}
return recordToDBFields;
} }
public static synchronized RecordToDBConnection getRecordDBInfo(Class<? extends Record> clz) throws Exception { public static synchronized RecordToDBConnection getRecordDBInfo(Class<? extends Record> clz) throws Exception {