Ecco un esempio semplificato del mio problema. Ho questo repository e classe entità.Come si crea un finder Spring JPA findBy query utilizzando una proprietà che contiene una parola chiave?
public interface ThingRepository extends JpaRepository<ThingEntity, Long> {
ThingEntity findByFooInAndBar(String fooIn, String bar);
}
@Entity
public class ThingEntity {
@Column(name="FOO_IN", nullable=false, length=1)
private String fooIn;
public String getFooIn() {
return fooIn;
}
public setFooIn(String fooIn) {
this.fooIn = fooIn;
}
/* not including bar property for brevity's sake */
}
La molla sta lanciando la seguente eccezione.
org.springframework.data.mapping.PropertyReferenceException: No property foo found for type ThingEntity!
Sembra primavera sta prendendo il metodo findByFooInAndBar
e pensa che foo
è il mio nome proprietà e in
è una parola chiave per la corrispondenza dei valori all'interno di una collezione.
Come faccio a capire che il nome della proprietà è fooIn
, non foo
?
non credo che ci sia un modo per aggirare questo comportamento diverso da scrivere il proprio metodo. O semplicemente rinominare il campo in 'fooin', magari senza la maiuscola? –