Skip to content

Commit 5db8f70

Browse files
committed
Case-insensitive check for field name
1 parent a20e803 commit 5db8f70

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

Studies/src/org/labkey/studies/query/StudiesTableCustomizer.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.apache.commons.collections4.MultiValuedMap;
44
import org.apache.logging.log4j.Logger;
5+
import org.labkey.api.collections.CaseInsensitiveHashMap;
56
import org.labkey.api.collections.CaseInsensitiveKeyedHashSetValuedMap;
67
import org.labkey.api.data.AbstractTableInfo;
78
import org.labkey.api.data.TableCustomizer;
@@ -20,15 +21,26 @@ public void customize(TableInfo tableInfo)
2021
MultiValuedMap<String, String> props = new CaseInsensitiveKeyedHashSetValuedMap<>();
2122
if (tableInfo.getPkColumnNames().size() > 1)
2223
{
23-
if (tableInfo.getPkColumnNames().contains("objectId"))
24+
final CaseInsensitiveHashMap<String> keys = new CaseInsensitiveHashMap<>();
25+
tableInfo.getPkColumnNames().forEach(x -> keys.put(x, x));
26+
27+
if (keys.containsKey("objectId"))
2428
{
25-
props.put("primaryKeyField", "objectId");
29+
props.put("primaryKeyField", keys.get("objectId"));
2630
}
2731
else if (tableInfo instanceof DatasetTable ds)
2832
{
2933
if (ds.getDataset().isDemographicData())
3034
{
31-
props.put("primaryKeyField", ds.getDataset().getStudy().getSubjectColumnName());
35+
String subjectCol = ds.getDataset().getStudy().getSubjectColumnName();
36+
if (keys.containsKey(subjectCol))
37+
{
38+
props.put("primaryKeyField", keys.get(subjectCol));
39+
}
40+
else
41+
{
42+
_log.error("Demographics dataset does not list subject col (" + subjectCol + ") as a PK. Table: " + tableInfo.getName());
43+
}
3244
}
3345
}
3446
}

0 commit comments

Comments
 (0)