我使用JPA进行数据库访问,并用正确的名称注释了每一列。现在,如果我执行查询(例如findAll()),它将返回
findAll()
Unknown column 'program0_.program_id' in 'field list'
错误消息是正确的program_id,未知,因为真实名称是programId。
program_id
programId
型号:程序
@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; }
标签
@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; }
询问
select program0_.program_id as program_1_5_, ...
JPA是否有理由将“ programId”更改为“ program_id”,或者我缺少任何配置?
谢谢
编辑:抱歉,忘记添加查询代码/信息。
我使用Spring Data的JpaRepository界面并尝试了findAll()查询。
JpaRepository
@Repository public interface ProgramRepository extends JpaRepository<Program, Long> {}
如spring-boot-jpa-column-name-annotation- ignored中所述,您的列名将转换为蛇形。
可能的解决方案: