要解决Android Room数据建模与嵌入式外键的问题,可以按照以下步骤进行操作:
build.gradle
文件中添加以下依赖项:implementation 'androidx.room:room-runtime:2.2.6'
annotationProcessor 'androidx.room:room-compiler:2.2.6'
@Entity
public class User {
@PrimaryKey
public int id;
public String name;
public int age;
}
@Entity
public class Order {
@PrimaryKey
public int id;
public String productName;
@Embedded
public User user;
}
@Dao
public interface OrderDao {
@Insert
void insert(Order order);
@Query("SELECT * FROM `Order`")
List getAllOrders();
}
RoomDatabase
的数据库类。在其中定义数据库的版本号、表的实体类和DAO接口。例如:@Database(entities = {Order.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract OrderDao orderDao();
private static AppDatabase instance;
public static AppDatabase getInstance(Context context) {
if (instance == null) {
instance = Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, "app-database")
.build();
}
return instance;
}
}
AppDatabase db = AppDatabase.getInstance(context);
OrderDao orderDao = db.orderDao();
Order order = new Order();
order.id = 1;
order.productName = "Product 1";
User user = new User();
user.id = 1;
user.name = "John";
user.age = 25;
order.user = user;
orderDao.insert(order);
List orders = orderDao.getAllOrders();
这样,你就可以使用Android Room进行数据建模和嵌入式外键的操作了。