jpa 省略 @Column

默认配置是可以省略的,遵从驼峰式命名,也就是遇到大写字母会转成 ‘_’ ,但是如果配置下面的代码就不能省略了,属于无修改命名。
比如数据库中字段名是:user_name, 则对应实体类中写成 userName

jpa:
    hibernate:
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

默认配置

jpa:
    hibernate:
      naming:
        physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用JPA的@Modifying和@Query注解来实现批量插入和更新。具体实现方法如下: 1. 定义一个实体类,用来映射要操作的表。 ```java @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "age") private Integer age; // 省略getter和setter方法 } ``` 2. 定义一个Repository接口,用来操作User实体类对应的表。 ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { @Modifying @Query(value = "insert into user (name, age) values (:name, :age) on duplicate key update age = values(age)", nativeQuery = true) void batchInsertOrUpdate(@Param("users") List<User> users); } ``` 在@Query注解中,使用了MySQL的insert on duplicate key update语法,如果插入的数据已存在,则更新对应的记录,否则插入新的记录。 3. 在Service或Controller中调用batchInsertOrUpdate方法。 ```java @Service public class UserService { @Autowired private UserRepository userRepository; public void batchInsertOrUpdate(List<User> users) { userRepository.batchInsertOrUpdate(users); } } ``` 调用方法时,将要插入或更新的数据集合作为参数传入即可。 注意,在@Query注解中,使用了命名参数:users,而不是?1,这是因为我们需要在SQL语句中循环获取参数集合的数据。因此,在SQL语句中,我们可以使用:users来表示整个参数集合,例如: ```sql insert into user (name, age) values (:#{#user.name}, :#{#user.age}) on duplicate key update age = values(age) ``` 其中,#{}表示SpEL表达式,可以访问方法的参数或类的属性。在这里,#user表示方法的参数集合中的每个元素,可以通过#user.name和#user.age来获取对应的属性值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值