Attualmente sto lavorando su un POC per Spring Data Rest. Cercando di ottenere JSONout realizzabile di un repository.Errore di Spring Data Rest (SDR)? Entità persistente Non deve essere nulla
ho una classe di entità (NewTask)
@Entity
@Table(name="newtable")
public class NewTask {
@Id
@Column(name="newid")
private int id;
@Column(name="newage")
private int age;
@Column(name="newaddress")
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
e un corrispondente repository ..
@RepositoryRestResource
@PreAuthorize("hasRole('ROLE_ADMIN')")
public interface NewTaskRepository extends CrudRepository<NewTask, Serializable>{
@Query("SELECT t.address FROM NewTask t where t.id = :id")
String findByMyId(@Param("id") int id);
}
ogni volta che mi ha colpito
http://localhost:8080/POCDB/newTasks/search/findByMyId?id=1
ottengo il seguente errore: { "causa": null, "messaggio": "PersistentEntity non deve essere nullo!"}
Ora ecco come appare il mio repository: Si prega di leggere i commenti su ciascun metodo
//Gives- PersistentEntity must not be null!!!
@Query("SELECT t.address FROM NewTask t where t.id = :id")
String findByMyId(@Param("id") int id);
//WORKS FINE
@Query("SELECT t.id FROM NewTask t where t.id = :id")
int findId(@Param("id") int id);
//WORKS FINE
@Query("SELECT t.id FROM NewTask t where t.id = :id")
Integer findIdTwo(@Param("id") int id);
//Gives- PersistentEntity must not be null!!!
@Query("SELECT t.id FROM NewTask t")
List<Integer> findIds();
Non sono sicuro di quali sono i problemi con ritorno types.I cui sul link qui sotto per qualche soluzione:
How does one create a custom query in jparepository but return an object other than the entity?
e ha aggiunto altri 2 metodi per il mio repository, che non lavorano per me
// returns in some weird format
@Query("SELECT t.address FROM NewTask t where t.id = :id")
PString findByMyId(@Param("id") int id);
//Gives- PersistentEntity must not be null!!!
@Query("SELECT t.address FROM NewTask t")
List<PString> findAddress();
Ho l'impressione che si tratti di un errore in SDR o manco qualcosa?
Domanda duplicata. http://stackoverflow.com/a/30403914/621686 – bvulaj
Ciao Brandon, La risposta che hai postato non funziona nel mio caso. Inoltre, questo non è un problema di ereditarietà, non esiste una classe base, ma il messaggio di errore è lo stesso. Potete aiutarmi per favore con la soluzione se avete qualche idea? O puoi riferire qualcuno che può? –