2017-05-19 2 views
0

Ich brauche Hilfe, um eine findBy Feder Abfrage für das folgende Szenario bei der Erstellung unter Verwendung abzuzurufen: Ich habe ein JSON-Dokument mit der folgenden Struktur:Wie Daten in einer Karte in Java findBy Frühjahr Repository

"data":{ 
"key1":"value1", 
"key2":"value2" 
} 

Im Modell , Ich habe diese "Daten" wie eine Karte wie,

Map<String, Object> data; 
public Map<String, Object> getData() { 
     return data; 
    } 
    public void setData(Map<String, Object> data) { 
     this.data = data; 
    } 

Jetzt möchte ich den Wert2 aus Daten mit Feder Repository. Ich benutze Couchbase für die DB.

Jede Hilfe wäre wirklich spürbar.

Vielen Dank im Voraus.

+0

haben Sie in irgendeiner Weise versucht, dies zu tun? http://docs.spring.io/spring-data/couchbase/docs/3.0.0.M3/reference/html/#datatypes –

+0

Ich möchte findBy verwenden, um die Daten zu erhalten. Zum Beispiel, wenn ich key2 außerhalb der Kartendaten habe, kann ich es als findByKey2() abfragen. Aber in meinem Fall sind es Insiderdaten. Wie findBy Query einrahmen, um diese Daten zu erhalten? –

+0

Ich glaube nicht, dass du es kannst. Warum holen Sie das Objekt nicht zurück und geben key2 nur von diesem Objekt zurück, indem Sie eine Methode verwenden, die das Repository aufruft? –

Antwort

0
@Entity 
public class Obj{ 
    private Integer id; 
    private String name; 
    //getter and setter 
} 

@Controller 
public class ControllerClass{ 
    @Autowired 
    private ObjService objService; 

    @GetMapping("/getObjectById/{id}") 
    @ResponseBody 
    public Map<String, Obj> getMapDetails(@PathVariable Integer id) { 
     Map<String, Obj> map = new HashMap<>();  
     map.put("data",objService.findById(id));  
     /*here you can able to N of times 
      Ex: map.put("data",service2.findById(id)); 
      and etc... 
     */ 
     return map; 
    } 
} 

@Service 
public Class ObjService{ 
    public Obj findById(Integer id){ 
     //logic 
    } 
} 

your Response will be like below: 
{"data":{ 
     "id":1, 
     "name":"value2" 
    } 
} 
Verwandte Themen