MySQL使用jpa为什么列名有下划线,带有不正确下划线的JPA列

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 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 {}

解决方案

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值