greenDAO 두 Entity 간에 관계 설정하기
프로그래밍/Android 2013. 9. 24. 21:35greenDAO 두 Entity 간에 관계 설정하기
참조
http://greendao-orm.com/documentation/relations/
greenDAO 는 안드로이드에서 작동하는 ORM 툴로서 기본적으로 1:M 관계를 지원합니다.
A Entity 와 B Entity 사이에 1:M 관계를 Generator 에서 정의하는 것으로 두 Entity 간의 Relationship 에 관련된 불필요한 코딩 작업을 해결할 수 있습니다.
Company 와 Employer 의 관계 정의하기
// Company 엔티티 정의하기
Entity company = schema.addEntity( "Company");
company.addIdProperty();
company.addStringProperty( "name");
// Employer 엔티티 정의하기
Entity employer = schema.addEntity( "Employer");
employer.addIdProperty();
employer.addStringProperty( "name");
Property hireDate = employer.addDateProperty( "hireDate");
Property companyId = employer.addLongProperty( "companyId").notNull().getProperty();
// 두 엔티티 간에 관계 설정하기
employer.addToOne( company, companyId);
ToMany tomany = company.addToMany( employer, companyId);
tomany.setName( "employers");
tomany.orderAsc( hireDate);
위 코드에서 엔티티 간에 관계를 설정하므로써 해당 엔티티에서는 관계된 엔티티를 가져올 수 있는 메소드가 자동으로 생성됩니다.
employer.addToOne( company, companyId);
addToOne 은 Employer 엔티티에 관계된 Company 엔티티를 가져올 수 있는 getCompany() 메소드를 생성해 줍니다.
쉽게 이해하기 위해서는 Employer 엔티티에 companyId 를 사용하여 Company 를 가져오는 메소드를 생성해라고 생각하면 됩니다.
ToMany tomany = company.addToMany( employer, companyId);
tomany.setName( "employers");
tomany.orderAsc( hireDate);
addToMany 는 엔티티에 1:M 관계를 설정하는 메소드입니다.
company.addToMany( employer, companyId); 코드를 통해서 Company 와 Employer 엔티티간에 1:M 관계를 설정합니다.
또는 Compnay 엔티티에 연결된 모든 Employer를 가져오는 getEmployer() 메소드를 생성하라는 의미로 이해하시면 됩니다.
tomany.setName( "employers");
tomany.orderAsc( hireDate);
코드를 통해서 생성된 메소드 이름이 getEmployer() 가 아니라 getEmployers() 로 생성하고 hireDate 로 정렬해서 가져오라고 설정했습니다.
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 ListView 스크롤시 배경색 변경 안되도록 (0) | 2013.09.27 |
---|---|
android ListView Adapter의 getView 메소드에 대한 이해 (0) | 2013.09.24 |
greenDAO insert 성능 향상시키는법 (0) | 2013.09.13 |
안드로이드 SqlLite Database ORM 프레임웤 greenDAO (0) | 2013.09.10 |
안드로이드 로그 프레임웤 logback (0) | 2013.09.10 |