Ciao,
premetto che sono agli e questa é la prima volta che cerco di prendere dei dati da un API tramite retrofit e di inserirli nel sqlLite.
Ho creato tre classi
La principale Client principale e poi che é Civilite e Adresse che vengono usate in Client
Civilite potrebbe essere nullo
Inoltre Civilite ha sempre solo tre tipi di valore, quindi ha una relazione 1 a N
@Entity(tableName = "Civilite")
public class Civilite {
     private String idCivilite ;
     private  String intitule;
}
se creo la classe senza primarykey ricevo il messaggio 
error: An entity must have at least 1 field annotated with @PrimaryKey
public class Civilite {
dunque per andare avanti e cercare di capire ho provato a mettere
 @PrimaryKey
 @NotNull
private String idCivilite ;
Quindi il primo problema e che non ho capito come creare nel db una tabella con questa relazione
Il secondo problema che non riesco a superare e che quando vado a scrivere nel db mi da eccezione e dice che Civilite é nulla e non puo creare Client
ma io ho impostato Civilite come Nullable
@Entity(tableName = "Contact")
public class Client {
    @PrimaryKey
    @NonNull
    private String id;
    private String numero;
    private String typeClient;
    @Nullable
    private String denomination;
    @Nullable
    private String nom;
    @Nullable
    private String prenom;
    @Nullable
    private String email;
    @TypeConverters(CiviliteTypeConverter.class)
    @Nullable
    private Civilite civilite;
}
nel mio codice per inserire i dati nel db ho scritto questo
var civilite: Civilite? = null
            if (_client.civilite != null) {
                 civilite = Civilite(
                    _client.civilite.idCivilite,
                    _client.civilite.intitule
                )
            }
            var client = Client(
                _client.id,
                _client.numero,
                _client.typeClient,
                _client.denomination,
                _client.nom,
                _client.prenom,
                _client.email,
                civilite,
                adresse,
                dateNaissance,
                etatMarital
            )
if (civilite != null) {
                        myAppDatabase.myDao().addUser(client)
                        myAppDatabase.myDao().addAdresse(adresse)
                        if (civilite != null) {
                            myAppDatabase.myDao().addCivilite(civilite)
                        }
                    }
sono certo che il problema é sulla civilite perché se riempio con dei dati fissi Civilite e dunque non é null tutto viene inserito correttamente
L'eccezione che ricevo su  myAppDatabase.myDao().addUser(client)
é questa
Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter value
Potete cortesemente aiutarmi ed indicarmi cosa sto sbagliando?
Grazie