2016-08-03 3 views
2

안드로이드에서 Sqlite를 DB로 사용하는 동안 우리 중 많은 사람들이 테이블 이름, 열 이름을 상수로 저장하는 DbConstants와 같은 클래스를 만듭니다.필드 이름에 대한 별도의 상수 유지를위한 대안

영역 DB의 경우 테이블 및 필드로 각각 열 이름으로 표시되는 POJO 클래스를 준비합니다.

여기에 다른 상수 파일을 만드는 것을 피할 수있는 방법이 있습니까?

사용 케이스 :

POJO 나타내는 사용자 테이블 : 그래서

public class User extends RealmObject { 

private String   name; 
private int    age; 

@Ignore 
private int    sessionId; 

// Standard getters & setters generated by your IDE… 
public String getName() { return name; } 
public void setName(String name) { this.name = name; } 
public int getAge() { return age; } 
public void setAge(int age) { this.age = age; } 
public int getSessionId() { return sessionId; } 
public void setSessionId(int sessionId) { this.sessionId = sessionId;  
} 
} 

다음과 같이 우리는 사용자 테이블을 쿼리하는 동안 :

RealmResults<User> result = realm.where(User.class) 
           .equalTo("name", "John") 
           .or() 
           .equalTo("name", "Peter") 
           .findAll(); 

내가 같은 리터럴을 사용하려면 돈`t " 이름 "을 입력하십시오. 그래서 다른 우아한 솔루션이나 모범 사례? 당신이 그 일을하는 자동화 된 방법을 원하는 경우에

public class User extends RealmObject { 
    public static final String NAME = "name"; 
    public static final String AGE = "age"; 

    // Fields, constructors, getters, setters, 
} 

realm.where(Person.class).equalTo(Person.NAME, "John").findAll(); 

당신이 한 번 봐 걸릴 수 있습니다 : 평소 연습이 같은 모델 클래스의 정적 최종 상수 데

+1

당신의 세터/getters는 롬복에 익숙하지 않다는 것을 나타냅니다. https://projectlombok.org/features/GetterSetter.html –

+0

@MarcinOrlowski POJO는 Realm 문서에서 직접 볼 수 있습니다 :). 내 것은 다르지 않지만. 흥미로운 링크 주셔서 감사합니다! – binaryKarmic

답변

3
+0

정말이 도우미 도구를 사용하고 싶지만 Realm 1.2.0-SNAPSHOT에서 작동한다고합니다. – binaryKarmic

+0

예, 맞습니다. 지금은 SNAPSHOT 릴리스에서만 작동합니다. 아마도 오늘 Reall 1.1.1을 릴리스 할 것입니다. 그것도 사용할 수 있습니다. –

+0

손가락이 엇갈 렸습니다! – binaryKarmic

관련 문제