androidarraysjsongreendao

DC2type on greenDao


I am using GreenDao for Android application, with some specification, for example, I have a Contact Model with some information like name, avatar, phone number, etc...

Right now the need is to change from only one phone number to a multiphone number.

Instead of creating two tables (table for numbers, and table for contacts), I really need just one information is the number so in my backend the contact numbers is stocked on a DC2type, (a json array saved as a string).

Do we have a possibility to do that using GreenDao?


Solution

  • i search for a solution or a DC2type implementation , etc ... and nothing is found

    so i decide to created by my self , and this is what i did : using the @Convert annotation presented of GreenDao 3 :

    @Property(nameInDb = "phoneNumbers")
    @Convert(converter = PhoneNumbersConverter.class, columnType = String.class)
    private List<String> phoneNumbers;
    
    static class PhoneNumbersConverter implements PropertyConverter<List<String>, String> {
        @Override
        public List<String> convertToEntityProperty(String databaseValue) {
            List<String> listOfStrings = new Gson().fromJson(databaseValue,List.class);
            return listOfStrings;
        }
        @Override
        public String convertToDatabaseValue(List<String> entityProperty) {
            String json = new Gson().toJson(entityProperty);
            return json;
        }
    }
    

    short story long , i create a json to array parser thanks to myself to helped me :D