例如:entity为
@Data @Entity @Table(name = "wx_user_storage") @ToString public class UserStorage implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Long id; @Column(name = "key") private String key; }
Dao类为
public interface UserStorageDao extends JpaRepository<UserStorage, Long> { @Query("delete from UserStorage s where s.key = :key") @Modifying(clearAutomatically = true) @Transactional void clearUserKeys(@Param("key")String key); }
测试为:
@RunWith(SpringRunner.class) @SpringBootTest(classes = {DianliApplication.class}, webEnvironment = SpringBootTest.WebEnvironment.MOCK) public class UserStorageDaoTest { @Autowired private UserStorageDao userStorageDao; @Test public void test1() { userStorageDao.clearUserKeys("key"); } }
在application.yaml中增加以下配置
spring:
jpa:
properties:
hibernate:
globally_quoted_identifiers: true
执行结果为:
Hibernate: delete from `wx_user_storage` where `key`=?
与预想一致