Soporte de clave foránea ORMlite Android
foreign-keys (1)
No soy inteligente de la documentación de ORMlite. ¿Es posible declarar en clase que este parámetro es clave externa?
Por ejemplo, tengo mesa cliente:
@DatabaseTable(tableName = "customer")
public class Customer {
@DatabaseField(id = true)
private String customerName;
@DatabaseField
private String customerSurname;
@DatabaseField(foreign = true)
private String accountNameHolder;
@DatabaseField
private int age;
public Customer() {
}
}
AccountNameHolder debe apuntar hacia el nombre DatabaseField desde la tabla Cuentas. ¿Como hacer eso? He encontrado solo el parámetro foreign = true, pero no hay nada sobre qué parámetro y de qué tabla representa.
Gracias
AccountNameHolder debe apuntar hacia el nombre DatabaseField desde la tabla Cuentas. ¿Como hacer eso?
No estoy exactamente seguro de lo que quiere, pero posiblemente debería cambiar su campo externo para que sea el tipo real en lugar de un nombre:
@DatabaseField(foreign = true)
private Account account;
Internamente, ORMLite almacenará un campo account_id
(tal vez el nombre de la cadena) en la tabla del Customer
, pero no tiene que preocuparse por eso. Recuerde que cuando realiza una consulta para un Customer
, la Account
que se establece en el campo de la account
solo tendrá el campo de identificación establecido. Para que ORMLite también busque la cuenta, deberá establecer el valor de foreignAutoRefresh=true
.
Como señaló @Lalit, aquí hay algo de documentación sobre este tema. Hemos dedicado mucho tiempo a la documentación, por lo que debería ser útil.
Además, hay algún código de ejemplo sobre campos foráneos .
Espero que esto ayude.