2013-12-20 1 views
0

Play Framework 2 사용하기 외부 세계에 대한 모델의 ID를 기반으로 고유 한 ID를 생성해야합니다 (모델의 실제 ID를 공개하고 싶지는 않음). Ebean 또는 다른 방법을 사용하여 어떻게 수행 할 수 있습니까?재생 프레임 워크 2에서 ID에서 외부 ID 생성하기

예를 들어 내 모델은 다음과 같습니다 잘

@Entity 
public class User extends Model { 
    @Id 
    public Long id; 

    //Generate unique id based on id, for the outside world 
    public Long externalId; 
} 
+0

이 외부 ID는 단지 표시하기위한 목적 : http://en.wikipedia.org/wiki/Universally_unique_identifier

또한이 예제 응용 프로그램을 살펴 있나요? – memainjm

+0

URL로 표시하고 요청이 웹 페이지에서 왔을 때 사용자를 참조합니다. – Benchik

답변

2

, 당신은 id은 2 진수 또는 16 진수로 표시 할 수 있습니다.

하지만 달성하고 싶은 것은 ID 성장의 크기를 숨기는 것입니다. 예 다음 선택은 UUID 경우 : https://github.com/jamesward/play2-ebean-uuid

+0

감사합니다. 링크의 예를 살펴 보았습니다. 나는 그들이 @Id 유형의 UUID를 사용하지만이 id가 클라이언트에게 공개되고 있음을 알았다. 응용 프로그램에 대한 ID (내부적으로)와 외부 사용을위한 ID를 사용하고 싶습니다. 클라이언트가이 외부 ID를 제공하면이 외부 ID로 엔티티를 찾을 수 있어야합니다. 이런 종류의 분리가 응용 프로그램에 더 많은 보안을 제공한다고 가정합니다. – Benchik

+0

확인. 그렇다면 기본 내부 ID를 기본 키로 사용하고 UUID를 사용하여 다른 고유 필드를 사용하는 것이 무엇입니까? – cosmolev

+0

ID가 DB에 의해 처리되고 UUID가 알고있는 한 스레드로부터 안전하지 않은 동안 스레드가 안전하다는 것을 나타냅니다. 스레드로부터 안전한지 확인하는 방법이 있습니까? 동기화하면 상당한 성능 문제가 발생하지 않습니다. – Benchik

관련 문제