Mysql
 sql >> база данни >  >> RDS >> Mysql

Android Room - Обработка на списък с обекти в обект и търсене на резултат

Стаята не поддържа това директно поради някои потенциални проблеми с мързеливо зареждане , но с някои DAO трикове е възможно. Ще трябва да обработвате вмъкванията изрично и за да заявите всичко наведнъж, ще ви трябва POJO, за да го обвиете.

@Entity(foreignKeys = {
    @ForeignKey(
            entity = PersonEntity.class,
            parentColumns = "personId",
            childColumns = "personIdFk",
            onDelete = CASCADE
    )
})
public class Pet {
    @PrimaryKey
    private String petId;
    private String name;
    private String personIdFk;
}

@Entity(tableName = "person")
public class PersonEntity {
    @PrimaryKey
    private String personId;
}

public class Person {
    @Embedded
    private PersonEntity personEntity;
    @Relation(parentColumn = "personId", entityColumn = "personIdFk")
    private List<Pet> pets;
}

@Dao
public abstract class PersonDao {

    @Insert
    protected abstract void insert(PersonEntity personEntity);

    @Insert
    protected abstract void insert(List<Pet> pets);

    @Transaction
    public void insert(Person person) {
        insert(person.getEntity());
        insert(person.getPets());
    }

    @Query("SELECT * FROM person")
    public abstract List<Person> getAll();

}

@Database(entities = {PersonEntity.class, Pet.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {

    public abstract PersonDao personDao();

}

Конструкторите, геттерите и сетерите са пропуснати за краткост.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да внедря филтърна система в SQL?

  2. Как да запишете резултат от MySQL заявка в .CSV файл

  3. Създаване на изглед в различни бази данни

  4. Просто въведение в използването на MySQL на терминала на Linux

  5. Данните не се съхраняват с подготвени оператори