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?

Spring Data JPA s'appuie fortement sur les conventions de nommage Java. Vous avez choisi de ne pas les respecter en ayant un trait de soulignement dans votre domaine et de l'accesseur de noms. C'est pourquoi vous suis mordu. Respecter les conventions de nommage Java et Spring Data JPA sera heureux, et votre code sera plus lisible comme un bonus. Non pas que la colonne peut être nommé en tant que vous voulez, y compris avec des traits de soulignement. Ce qui compte c'est votre cartographié les noms de champ.
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