Ale*_*rvu 16 java spring hibernate jpa spring-data-jpa
我正在尝试在我的存储库中创建自定义deleteBy方法查询.似乎hibernate不是删除,而是制作一个select语句.
public interface ContactRepository extends JpaRepository<Contact, Integer> {
Integer deleteByEmailAddress(String emailAddress);
//and this one works
Contact findContactByName(String name);
}
Run Code Online (Sandbox Code Playgroud)
这是Hibernate试图做的事情:
Hibernate:选择contact0_.id为id1_2_,contact0_.emailAddress为> emailAdd2_2_,contact0_.name为name3_2_来自联系人contact0_ where> contact0_.emailAddress =?
我错过了什么?我是否必须进行特殊配置才能使删除工作?
iku*_*men 32
删除是否无效或无法正常工作?通常,在删除实体之前必须对其进行管理,因此JPA提供程序(在您的情况下为hibernate)将首先加载(您看到的查询)实体,然后发出删除.
如果您只看到查询,但没有相应的删除,那么有些可能性是:
deleteByEmailAddress是事务性的注意:使用修改查询删除删除实体时可以避免选择,例如:
// NOTE: you have return void
@Modifying
@Transactional
@Query(value="delete from Contact c where c.emailAddress = ?1")
void deleteByEmailAddress(String emailAddress)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37489 次 |
| 最近记录: |