{
"protocol": "protocolName",
"name": "objectName", //Note: This is not used in iOS
"entity": true, // If true then will add uuid field
"fields": [
{
"name": "fieldName",
"type": "STRING",
"primaryKey": true
"keys": [ "fieldKey" ]
},
{
"name": "optionalfieldName",
"type": "STRING",
"nullable": true
"keys": [ "optionalFieldKey", "anotherOptionalFieldKey" ]
},
{ "name": "udcFieldName",
"type": "UDC",
"lookupEnabled": true
"keys": [ "udcFieldKey", ]
}
]
}
Item Descriptions
-
Protocol is the name of the base model that must be overridden
-
Name is for the object class implementation you want to generate
-
Entity denotes whether an ObjectBox class should be created for the class and if the annotation is added to the class
-
Fields is an array that contains all the fields that should be instantiated for this class. Each field includes:name: The field nametype: One of INTEGER, STRING, DECIMAL, BOOL, URL, LONG, DATE, HASH, ENUM or UDCkeys: An array of the keys for the field (can be empty). Note that any primary key field should also have primaryKey : truenullable: A boolean to indicate if the field is nullable or optionalAny Dates or Booleans are optionalHash type Password hash are of different types between Android and iOS, therefore a type has been introduced specifically for that. The Hash type will be interpreted as String on Android side and as Int64 in iOS.UDC type Fields with the type UDC can have a lookupEnabled property. If this property is set to true then additional fields will be created. If the lookupEnabled property is not set to true, then the field will simply be a normal String type field. Eg. If setting a field "status" as UDC with lookupEnabled to true, "status", "statusDescription" and "statusDescription2" will be created.