Spring-Data-Jpa Référentiel de Soulignement sur l'Entité Nom de la Colonne
Je suis à l'aide de spring-data-jpa sur un ressort webmvc projet. Je suis confronté à un problème à l'aide de la création de requêtes sur un Référentiel de l'un de mes Entités. Ci-dessous vous pouvez voir mon Entité, mon Référentiel et l'Exception.
Mon Entité,
@Entity
@Table(schema = "mainschema")
@XmlRootElement
public class Municipalperson implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(nullable = false)
private Integer id;
@Basic(optional = false)
@Column(name = "municipal_id", nullable = false)
private Integer municipal_id;
@Basic(optional = false)
@Column(nullable = false, length = 60)
private String firstname;
public Municipalperson(Integer id, Integer municipal_id, String firstname) {
this.id = id;
this.municipal_id = municipal_id;
this.firstname = firstname;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getMunicipal_id() {
return municipal_id;
}
public void setMunicipal_id(Integer municipal_id) {
this.municipal_id = municipal_id;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
}
mon Référentiel,
@Repository
public interface MunicipalpersonRepository extends JpaRepository<Municipalperson, Integer> {
List<Municipalperson> findByMunicipal_idOrderByLastnameDesc(int municipal_id);
}
et l'exception,
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'municipalpersonRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property municipal found for type Municipalperson!
J'ai tenté de mynicipal_id comme int, alors que le nombre Entier et de même pour le paramètre " municipal_id sur mon Référentiel, mais tous n'ont pas travaillé. Aussi, j'ai renommer le Référentiel de "findByMunicipalidOrderByLastnamedesc" et "findByMunicipalIdOrderByLastnamedesc", mais il n'a pas travaillé ni.
Enfin je renommé la municipal_id à municipalId (trait de soulignement supprimé) et aussi renommer les getters/setters et le Référentiel (findByMunicipalIdOrderByLastnamedesc) et le problème résolu,.
Ma question est pourquoi ce qui se passe?
Merci beaucoup pour votre commentaire. Je ne connaissais pas les conventions de nommage java. J'ai trouvé aussi cette stackoverflow question qui m'a aidé aussi.
OriginalL'auteur George Siggouroglou | 2014-05-04
Vous devez vous connecter pour publier un commentaire.
Le trait de soulignement
_
est un caractère réservé, au Printemps de requête de Données de dérivation (voir la référence docs pour plus de détails) pour permettre à de manuel de la propriété description de voie. Il y a donc deux options:_
par l'utilisation d'un autre trait de soulignement, c'est à dire de renommer votre méthode de requête àfindByMunicipal__idOrderByLastnameDesc(…)
.Que je recommanderais à l'ancienne que vous n'allez pas aliéner les collègues développeurs Java :).
Désolé mais le trait de soulignement double ne fonctionne pas.
Le trait de soulignement double solution n'a pas fonctionné pour moi aussi et je ne suis pas en mesure d'annuler mon upvote...
OriginalL'auteur Oliver Drotbohm
J'ai résolu cette erreur en renommant le champ pour le nom, sans le trait de soulignement.
La meilleure façon d'éliminer l'erreur sans changer de base de données et tous la cartographie des trucs.
Répondre au premier commentaire, la question n'était pas "comment la carte de la base de données nom de la colonne avec un trait de soulignement à Java Entité" mais comment utiliser une propriété d'entité avec un trait de soulignement avec ressort des données. C'est pourquoi cette réponse n'est pas accepté.
OriginalL'auteur Valentyn Kolesnikov
Veuillez ajouter les propriétés suivantes application.propriétés fichier:
OriginalL'auteur Jagannath Nanda