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

  1. Upgrade to a greenDAO generator version whose type mappings include the property type you use
  2. Verify the property's type is a standard supported type (String, Long, Date, byte[], primitives, Boolean, etc.)
  3. Check that the property was added with a standard add<Type>Property method so PropertyType gets set
  4. 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

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


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)