greenrobot/greenDAO · error · IllegalStateException
No mapping for
Error message
No mapping for
What it means
Schema.mapType() looks up a PropertyType in one of its internal maps (java-to-db type mappings) and throws IllegalStateException when the type has no entry. This means the generator's type-mapping tables are incomplete for the requested property type — normally only possible when the greenDAO generator version does not know the type, or an internal caller passes an unmapped type.
Solutions
- Upgrade to a greenDAO generator version whose type mappings include the property type you use
- Verify the property's type is a standard supported type (String, Long, Date, byte[], primitives, Boolean, etc.)
- Check that the property was added with a standard add<Type>Property method so PropertyType gets set
- If the message shows a specific type, confirm that type exists in the generator's PropertyType enum for your version
Example fix
// before
Property blob = entity.addByteArrayProperty("data").getProperty(); // in old generator version w/o mapping
// after
// upgrade generator dependency to a version that maps byte[]/BLOB, or
Property blob = entity.addStringProperty("dataBase64").getProperty(); Defensive patterns
Strategy: try-catch
Validate before calling
if (property.getPropertyType() == null) throw new IllegalStateException("Property type not set before generation"); Type guard
function hasTypeMapping(schema, pt) { return schema.mapToDbType(pt) !== undefined; } Try / catch
try { schema.generate(); } catch (IllegalStateException e) { if (e.getMessage().startsWith("No mapping for")) { log("Unsupported property type: " + e.getMessage()); } else { throw e; } } Prevention
- Stick to standard greenDAO PropertyTypes
- Keep the generator dependency up to date
- Always use Entity.addXxxProperty so types initialize correctly
When it happens
Trigger: Declaring a property whose PropertyType has no entry in the schema's dbType/javaType mapping maps; calling mapToDbType/mapToJavaTypeNullable/mapToJavaTypeNotNull during entity code generation with an unknown or null PropertyType.
Common situations: Using a greenDAO version whose mapping tables lack a newer PropertyType; corrupted/incomplete Property initialization so getPropertyType() returns null; custom schema subclasses modifying the maps.
Understand the failure class
Background: "This is a bug, please report it": internal invariant violations, unreachable panics, and SNH errors explained — this error's family across 47 libraries.
Related errors
- Type is already non-primitive
- Source entity has no primary key, but we need it for
- Source properties do not match target properties:
- Property type uninitialized
- Source entity has no primary key, but we need it for
AI-assisted analysis of greenrobot/greenDAO@0bbb338e17 (2026-09-08).
Data as JSON: /api/errors/8780daadeb8151d4.
Report an issue: GitHub.
Appendix: source
Thrown at DaoGenerator/src/org/greenrobot/greendao/generator/Schema.java:142
return entity;
}
public String mapToDbType(PropertyType propertyType) {
return mapType(propertyToDbType, propertyType);
}
public String mapToJavaTypeNullable(PropertyType propertyType) {
return mapType(propertyToJavaTypeNullable, propertyType);
}
public String mapToJavaTypeNotNull(PropertyType propertyType) {
return mapType(propertyToJavaTypeNotNull, propertyType);
}
private String mapType(Map<PropertyType, String> map, PropertyType propertyType) {
String dbType = map.get(propertyType);
if (dbType == null) {
throw new IllegalStateException("No mapping for " + propertyType);
}
return dbType;
}
public int getVersion() {
return version;
}
public String getDefaultJavaPackage() {
return defaultJavaPackage;
}
public String getDefaultJavaPackageDao() {
return defaultJavaPackageDao;
}
public void setDefaultJavaPackageDao(String defaultJavaPackageDao) {
this.defaultJavaPackageDao = defaultJavaPackageDao;View on GitHub (pinned to 0bbb338e17)