例如,我有一个带有“user”表外键的“phone”表。如何获取同一用户的电话列表,其中phone.user字段与每部电话的对象相同?
public class User{
int id;
String name;
}
public class Phone{
int id;
User user;
String number;
}
╔═════════╦══════╗
║ USER_ID ║ NAME ║
╠═════════╬══════╣
║ 1 ║ User ║
║ 2 ║ Man ║
║ 3 ║ Dog ║
╚═════════╩══════╝
╔═══════════╦═════════════╦════════╗
║ PHONE_ID ║ USER_ID_FK ║ NUMBER ║
╠═══════════╬═════════════╬════════╣
║ 1 ║ 1 ║ 000 ║
║ 2 ║ 1 ║ 001 ║
║ 3 ║ 3 ║ 002 ║
║ 4 ║ 1 ║ 003 ║
║ 5 ║ 3 ║ 004 ║
╚═══════════╩═════════════╩════════╝
当我查询时:
SELECT * FROM PHONES
从游标中获取USER_ID_FK,然后转到USERS表:
SELECT * FROM USERS WHERE ID = USER_ID_FK
每次我从USERS获取一行时,它都会创建新的User对象。
好的,这是合乎逻辑的。
但我想知道是否有将同一个外键映射到同一个对象的方法?我想ORM是解决它的方法(因为在Java EE ORM中使用注释来处理它)。但是原生Android框架工具能帮我实现这个目标吗?
P.S。我知道可以使用JOIN简化查询,但我试着清楚地解决问题。