public void setObject(ExecutionContext ec, PreparedStatement ps, int[] exprIndex, Object value) { if (value == null) { getDatastoreMapping(0).setObject(ps, exprIndex[0], null); } else if (datastoreMappings != null && datastoreMappings.length > 0 && datastoreMappings[0].isStringBased()) { TypeConverter conv = ec.getNucleusContext() .getTypeManager() .getTypeConverterForType(LocalTime.class, String.class); if (conv != null) { Object obj = conv.toDatastoreType(value); getDatastoreMapping(0).setObject(ps, exprIndex[0], obj); } else { throw new NucleusUserException("This type doesn't support persistence as a String"); } } else { LocalTime val = (LocalTime) value; Calendar cal = Calendar.getInstance(); cal.set(0, 0, 0, val.getHour(), val.getMinute(), val.getSecond()); getDatastoreMapping(0).setObject(ps, exprIndex[0], cal); } }