Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据JPA:使用@Query注释检查存在的实体ID_Java_Hibernate_Jpa - Fatal编程技术网

Java Spring数据JPA:使用@Query注释检查存在的实体ID

Java Spring数据JPA:使用@Query注释检查存在的实体ID,java,hibernate,jpa,Java,Hibernate,Jpa,我正在尝试使用for-check-exist实体Id创建一个简单的JPQL 我的PlanDetail实体: Entity @Table(name="T_PLAN_DETAIL") public class PlanDetail extends AbstractProcessEntity { @ManyToOne @JoinColumn(name = "TERRITORY_ID") private Territory territory; ... } public interface Plan

我正在尝试使用for-check-exist实体Id创建一个简单的JPQL

我的PlanDetail实体:

Entity
@Table(name="T_PLAN_DETAIL")
public class PlanDetail extends AbstractProcessEntity {

@ManyToOne
@JoinColumn(name = "TERRITORY_ID")
private Territory territory;
...
}
public interface PlanDetailRepository extends CrudRepository<PlanDetail, Long> {

@Query("SELECT COUNT(e)>0 FROM PlanDetail e WHERE e.terrritoryId=?1")
boolean existsByTerritory(Long territoryId);
}
我想使用断言检查它:

Assert.isTrue(planDetailRepository.existsByTerritory(territoryId), "This territory exist with ID = " + territoryId);
我的PlanDetail实体:

Entity
@Table(name="T_PLAN_DETAIL")
public class PlanDetail extends AbstractProcessEntity {

@ManyToOne
@JoinColumn(name = "TERRITORY_ID")
private Territory territory;
...
}
public interface PlanDetailRepository extends CrudRepository<PlanDetail, Long> {

@Query("SELECT COUNT(e)>0 FROM PlanDetail e WHERE e.terrritoryId=?1")
boolean existsByTerritory(Long territoryId);
}

感谢您的帮助。你能告诉我任何JPQL文档吗。。谢谢。

假设您的区域实体有一个名为“id”的字段

将查询更改为:

@Query("SELECT COUNT(e)>0 FROM PlanDetail e WHERE e.territory.id=?1")

是的,我没有terrritoryId。但我有Territory entitiy,我想从Territory entitiy中检查Territory id。我有一个简单的问题,我最近开始使用JPA并使用查询注释编写查询。
queryannotation
查询的执行速度是否比使用命名查询和写入
findByProperty
的查询快?