【问题标题】:Using snake case in JPA query在 JPA 查询中使用蛇形案例
【发布时间】:2021-12-06 18:54:58
【问题描述】:

我想列出我的控制器中的所有参与者,但在 JpaRepository 中使用 snake_case 会产生错误

例子:

在 sql 中我会这样做:

select * from participants p where p.game_a = 1;

在存储库中我尝试这样做:

@Repository
public interface ParticipantRepository extends JpaRepository<Participant, Long> {
    List<Participant> findParticipantByGame_a(Game game_a);
}

有没有办法使用蛇案例来做这样的事情,或者我应该将模型中的所有属性重命名为骆驼案例以避免这种情况?

错误:

无法为方法 public abstract java.... 创建查询 为类型 Participant 找到属性游戏!您是说“gameA”吗?

使用 findParticipantByGameA 或 findParticipantBygameA 也不起作用

【问题讨论】:

标签: java spring jpa


【解决方案1】:

下划线是spring数据中的保留字符。如果要在数据库列名中使用下划线,请在实体字段(gameA)中使用驼峰字母,然后使用@Column(name="game_a") 设置数据库列名。但是,要在实体字段中使用此字符,您需要在 application.properties 文件中更改 JPA 命名策略。前任。在休眠中:

spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多