2017-04-20 5 views
1

Ich benutze Spring Boot und Spring Data.Wie kann ich einen Spaltenwert aus einer Tabelle abrufen?

Ich habe eine Kontakteinheit mit den Spalten id und firstName.

@Entity 
@Table(name = "Contact") 
public class Contact { 

    @Id 
    @GeneratedValue(strategy= GenerationType.AUTO) 
    private int id; 
    private String firstName; 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 


} 

Ich verwende Repository mit Spring Data, um meine Daten zu finden.

public interface contactRepository extends CrudRepository<Contact, Long> { 
    } 

Mein Controller, beispielsweise mit getAll:

@RequestMapping(value = "/getAllContact", produces = "application/json") 
public List<Contact> getAllClients(){ 
    return repo.getAll(); 
} 

Mein Controller funktioniert, aber ich weiß nicht, wie alle Werte in Spalte Vornamen in meinem Controller zurückzukehren. Ich habe versucht, mit einer Abfrage, es funktioniert, aber es gibt nur eine Liste von Werten und nicht die json:

@Query(value = "SELECT firstName FROM Contact") 
     List<Contact> findAllFirstName(); 

Beispiel:

["Pierre", "Jean"] 

und ich möchte diese (in Json):

[{"firstName ": "Pierre" },{"firstName ":"Jean"}] 

Wie mache ich das?

Antwort

0

Stellen Sie sicher, dass sich die jackson-Bibliotheken in Ihrem Klassenpfad befinden. Fügen Sie dann @ResponseBody in Ihre Controller-Methode ein, um die json-Ausgabe zurückzugeben. Fügen Sie außerdem @JsonIgnore in der ID Ihrer Entität hinzu, um sie von der json-Ausgabe auszuschließen.

@RequestMapping(value = "/getAllContact", produces = "application/json") 
@ResponseBody 
public List<Contact> getAllClients(){ 
    return repo.getAll(); 
} 

@Entity 
@Table(name = "Contact") 
public class Contact { 

    @Id 
    @GeneratedValue(strategy= GenerationType.AUTO) 
    @JsonIgnore 
    private int id; 
    private String firstName; 

    ..... 
} 
Verwandte Themen