2014-01-28 2 views
0

Android 애플리케이션에 greenDAO를 사용하려고 합니다만 'not null', 'unique'및 외래 키 이외의 데이터 유효성 검사를 지원하지 않는 것으로 나타났습니다. SQL 레벨 (테이블 작성시 정의 된 제한 조건) 또는 Java 레벨 (설정 메소드의 유효성 검증 로직). "Keep sections"은 개별 메소드 내에서 가질 수 없기 때문에이 경우 도움이 될 것 같지 않습니다. 뭔가 빠졌는가, 아니면 입력 데이터의 유효성을 검사하고 싶다면 생성 된 자바 객체 위에 다른 레이어를 추가해야할까요? (I 검증 로직을 포함 할 수있는 장소를 제공하지 않고 프레임 워크가 도움이 될 수있는 방법을 다소 혼란 스러워요.)greenDAO 및 데이터 유효성 확인

+0

어떤 종류의 유효성 검사를 의미합니까? 예를 들어주십시오. – AlexS

+0

@AlexS 일부 예는 특정 범위로 제한되어야하는 값이거나 항상 다른 필드보다 작아야하는 필드입니다. 기본적으로 SQL 제약으로 할 수있는 모든 것. – ecraig12345

+1

Greendao는 데이터를 간단하게 유지하고 액세스하기위한 것이며 DAO 계층입니다. 유효성 검사는 비즈니스 로직의 일부이며 일반적으로 입력 또는 비즈니스 로직에서 그리고 데이터가 지속되기 전에 수행되어야합니다. – AlexS

답변

0

1

당신이 방법을 쓸 수

boolean check(); 
KEEP 섹션에서

INSERT 나 UPDATE 전에 수동으로 호출 한 엔티티의 이름. property.java에서 당신은 물론

public Property.Builder check (String expr) { 
    property.checkConditon = expr; 
} 

는 것을 Property.Builder하는 방법을 추가 할 수 있습니다

2

또 다른 가능성은 검사를 지원하기 위해 greendao 발생기의 소스 코드를 확장하는 것이다 String checkCondition = "";을 소개하고 dao-template에서 dao를 생성하는 데 사용해야합니다.

문제 : 변경 사항을 greendao의 새 버전으로 가 손실 될 것이다 (그러나 다시 새로운 버전이 이미 포함 할 수있다 이러한 기능)

3.

세 번째 가능성은 생성 된 복사하는 것입니다 CREATE TABLE 문을 사용하여 필요에 맞게 수정하고 원래 문 대신 수정 된 문을 호출하거나 원래 테이블을 삭제하고 문을 호출하십시오.

문제점 : 테이블이 변경되면이 작업을 반복해야합니다.

+0

어딘가에서 자동으로 호출되지 않는 한 어떻게 도움이 될지 모르겠습니다. – ecraig12345

+0

나는 두려워서, 당신은 그 순간에 스스로 부르짖어야 할 것입니다. – AlexS

+0

그 다음은 쓸모가 없다. 설정 도구 (또는 데이터베이스 업데이트)에서 데이터의 유효성 검사가 아닌 수동으로 일종의 유효성 검사 메소드를 수동으로 호출해야하는 것은 좋은 방법이 아니다. – ecraig12345