2012-06-14 2 views
3

설명서에서이 내용을 찾을 수 없습니다.Hazelcast 쿼리가 개체 메서드에서 작동 할 수 있습니까?

나는 hazelcast 캐시에 복잡한 객체가있는 경우 :

public class MyObj { 
    private int something; 
    private AnotherObject complexMember; 
} 

내가 할 수 :

map.values(new SqlPredicate("something > 3 AND complexMember.someProperty > 3")); 

나는이 가능한 곳 @Cachable 주석이 SpEL를 사용하는 것을 알고있다. 프로그래밍 방식으로 어떻게 든 할 수 있습니까?

감사합니다.

답변

5

예 가능합니다. 다음을 시도하십시오.

public static void main(String[] args) throws Exception { 
    final HazelcastInstance hz = Hazelcast.newHazelcastInstance(null); 
    final IMap map = hz.getMap("test"); 
    map.put(1, new MyObj(1, new AnotherObject("value"))); 

    System.out.println(map.values(new SqlPredicate("something > 0 and complexMember.someString like 'val%'"))); 
} 

static class MyObj implements Serializable { 
    private int something; 
    private AnotherObject complexMember; 

    MyObj(final int something, final AnotherObject complexMember) { 
     this.something = something; 
     this.complexMember = complexMember; 
    } 
} 

static class AnotherObject implements Serializable { 
    private String someString; 

    AnotherObject(final String someString) { 
     this.someString = someString; 
    } 
}