Ciao a tutti,
sto provando a fare una select in Room per avere la lista dei Client con all'interno gli oggetti Civilite, Telephone ed Email


Purtroppo come risultato ottengo Client, il resto é tutto a null.
Ho provato varie soluzioni anche creando una join in sql, ma non riesco a prendere gli altri oggetti
@Query("SELECT Client.*, Civilite.* FROM Client LEFT OUTER JOIN Civilite ON Client.idCiviliteJoin = Civilite.idCivilite")
fun getClients(): List<Client>


Queste sono le mie tabelle


@Entity(tableName = "Client", indices = {@Index(value="idClient",unique = true),})
public class Client {
@PrimaryKey
@SerializedName("id")
@NonNull
private String idClient;




@Nullable
private Civilite civilite;


@Nullable
private Long idCiviliteJoin;




@Ignore
private List<Telephone> telephones;




@Nullable
private Long idEmail;


@Nullable
private Long idEmailProf;




}






@Entity(tableName = "Telephone", indices = {@Index(value = {"typeTelephone", "numero"}, unique = true)})
public class Telephone {


@PrimaryKey(autoGenerate = true)
private long idTelephonePK;


private String typeTelephone;


private String numero;


}






@Entity(tableName = "Email", indices = {@Index(value="idEmail ",unique = true),})
public class Email{
@PrimaryKey
@SerializedName("id")
@NotNull
private Long idEmail ;


private String email;


}




@Entity(tableName = "Civilite", indices = {@Index(value="idCivilite",unique = true),})
public class Civilite {


@PrimaryKey
@SerializedName("id")
@NotNull
private Long idCivilite ;


private String intitule;
}








Ho creato una classe di appoggio


@Entity(tableName = "ClientCiviliteJoin",
primaryKeys = { "idClient", "idCivilite" },
foreignKeys = {
@ForeignKey(entity = Client.class,
parentColumns = "idCiviliteJoin",
childColumns = "idClient"),
@ForeignKey(entity = Civilite.class,
parentColumns = "idCivilite",
childColumns = "idCivilite")
})


public class ClientCiviliteJoin {


public final int idClient;
public final int idCivilite;


public ClientCiviliteJoin(final int idClient, final int idCivilite) {
this.idClient = idClient;
this.idCivilite = idCivilite;
}


eseguendo una query cosi
@Query("SELECT * FROM Client INNER JOIN clientcivilitejoin ON client.idClient=clientcivilitejoin.idClient")
fun getClientsJoin(): List<Client>


ma ricevo questo errore, forse perché il campo idCiviliteJoin non é una chiave, ma non ho capito ancora come poter creare più chiavi nella tabella
error: com.genapi.mobileandroid.model.ClientCiviliteJoin has a foreign key (idClient) that references com.genapi.mobileandroid.model.Client (idCiviliteJoin) but com.genapi.mobileandroid.model.Client does not have a unique index on those columns nor the columns are its primary key






Qualcuno mi puoi suggerire come avere l'oggetto Client completo?
Grazie