JPA column with incorrect underscore

hibernate, java, jdbc, jpa, spring

Solution

As described in spring-boot-jpa-column-name-annotation-ignored, your column name is being converted to snake case.

Possible solutions:

- Setup a Naming Strategy

- Use lowercase column names in your annotations

Problem

I use JPA for database access and annotated every column with the correct name. Now if I execute a query (e.g. `findAll()`) it returns ``` Unknown column 'program0_.program_id' in 'field list' ``` The error message is correct `program_id` is unknown because the real name is `programId`. Models: Program ``` @Entity @Table(name = "programs") @XmlRootElement public class Program implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "programId") private Long programId; @ManyToMany @JoinTable( name = "programlabels", joinColumns = { @JoinColumn(name = "program", referencedColumnName = "programId")}, inverseJoinColumns = { @JoinColumn(name = "label", referencedColumnName = "labelId")}) private Collection<Label> labels; } ``` Label ``` @Entity @Table(name = "labels") @XmlRootElement public class Label implements Serializable { @Id @Basic(optional = false) @NotNull @Size(min = 1, max = 100) @Column(name = "labelId") private String labelId; } ``` Query ``` select program0_.program_id as program_1_5_, ... ``` Is there a reason why JPA changes "programId" to "program_id" or am I missing any configuration? thanks Edit: Oh sorry forgot to add query code/information. I use the Spring Data's `JpaRepository` interface and tried the `findAll()` query. ``` @Repository public interface ProgramRepository extends JpaRepository<Program, Long> {} ```

Original source

Related problems