Mongodb集合字段命名风格为驼峰与下划线的区别

本文探讨了在使用MongoDB时,Java实体类的驼峰命名与数据库下划线字段命名的冲突问题。实践中发现驼峰命名可能导致反射失败或映射错误。解决方案包括在实体类中使用@Field注解或修改配置文件中的field-naming-strategy。通过这两种方式,可以实现Java实体类驼峰命名与MongoDB下划线字段的无缝映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   我们java实体类都是驼峰命名,例如userName但我们在用mybatis的时候是能映射数据库为下划线字段user_name的。而mongodb是直接映射,也就是说,假设我的实体类是userName,那么对应到mongodb的集合属性也是userName。这样不规范会有怎样结果呢?通过实践我发现驼峰命名后做不了java反射,有的会映射不到。所以我们还是应该按规范来写,那么我们应该怎么改才能既能实体类驼峰又能集合带下划线呢。有两种方法。

一、在实体类添加@Field注解

例如

    @Field("user_name")
    private String userName;

二、给配置文件的mongodb连接加上一段field-naming-strategy

例如

      uri: mongodb://127.0.0.1/gw
      username: admin
      password: admin123
      field-naming-strategy: org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy

加上这一段后,mongodb就能像mybatis一样自动把实体类的驼峰命名的属性映射到数据库下划线命名的字段了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值