Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 使用JPQL通过联接表进行查询时出错_Java_Spring_Hibernate_Join_Jpql - Fatal编程技术网

Java 使用JPQL通过联接表进行查询时出错

Java 使用JPQL通过联接表进行查询时出错,java,spring,hibernate,join,jpql,Java,Spring,Hibernate,Join,Jpql,我试图使用route实体的源属性和目的属性获取列车实体列表,route实体之间存在一对多关系。将路线id作为外键的列车表。表名分别为路线和列车。当查询抛出java.lang.IllegalArgumentException:public abstract java.util.List com.infyrail.app.repository.RouteRepository.findBySourceDestination(java.lang.String,java.lang.String)方法的查询

我试图使用route实体的源属性和目的属性获取列车实体列表,route实体之间存在一对多关系。将路线id作为外键的列车表。表名分别为路线和列车。当查询抛出
java.lang.IllegalArgumentException:public abstract java.util.List com.infyrail.app.repository.RouteRepository.findBySourceDestination(java.lang.String,java.lang.String)方法的查询验证失败时,请帮助我
路由存储:

public interface RouteRepository extends JpaRepository<RouteEntity, Integer> {
    @Query("SELECT t FROM train t JOIN route r WHERE r.source=?1 AND r.destination=?2")
    public List<TrainEntity> findBySourceDestination(String source,String destination);
}

问题就在这里。查询应该定义表bean名称,而不是实际的表名称

在您的情况下,您应该使用TrainEntity而不是train,使用RouteEntity而不是route

public interface RouteRepository extends JpaRepository<RouteEntity, Integer> {
    @Query("SELECT t FROM TrainEntity t JOIN RouteEntity r WHERE r.source=?1 AND r.destination=?2")
    public List<TrainEntity> findBySourceDestination(String source,String destination);
}
public interface RouteRepository扩展了JpaRepository{
@查询(“从列车实体t连接路线属性r中选择t,其中r.source=?1和r.destination=?2”)
公共列表findBySourceDestination(字符串源、字符串目标);
}

问题出在这里。查询应该定义表bean名称,而不是实际的表名称

在您的情况下,您应该使用TrainEntity而不是train,使用RouteEntity而不是route

public interface RouteRepository extends JpaRepository<RouteEntity, Integer> {
    @Query("SELECT t FROM TrainEntity t JOIN RouteEntity r WHERE r.source=?1 AND r.destination=?2")
    public List<TrainEntity> findBySourceDestination(String source,String destination);
}
public interface RouteRepository扩展了JpaRepository{
@查询(“从列车实体t连接路线属性r中选择t,其中r.source=?1和r.destination=?2”)
公共列表findBySourceDestination(字符串源、字符串目标);
}

只需使用
findbyroutesourceandroedestation
不编写查询即可。只需使用
findbyroutesourceandroedestation
不编写查询即可。
public interface RouteRepository extends JpaRepository<RouteEntity, Integer> {
    @Query("SELECT t FROM TrainEntity t JOIN RouteEntity r WHERE r.source=?1 AND r.destination=?2")
    public List<TrainEntity> findBySourceDestination(String source,String destination);
}