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
Hibernate CRUDEPositories-@Query执行前的流程查询参数_Hibernate_Jpa_Spring Boot - Fatal编程技术网

Hibernate CRUDEPositories-@Query执行前的流程查询参数

Hibernate CRUDEPositories-@Query执行前的流程查询参数,hibernate,jpa,spring-boot,Hibernate,Jpa,Spring Boot,这是一个简单的界面 public interface HPCrudRepository<T,ID extends Serializable>{ @Query("<how to write query here") public List getThis(String somevalue); } public interface HPCrudRepositoryCustom { public void customMethod(); } 公共接口H

这是一个简单的界面

public interface HPCrudRepository<T,ID extends Serializable>{

    @Query("<how to write query here")
    public List getThis(String somevalue);

}
public interface HPCrudRepositoryCustom {
    public void customMethod();
}
公共接口HPCRUDepository{

@Query(“不完全是您正在寻找的解决方案,但您可以将自定义添加到spring数据存储库中

首先创建一个单独的接口

public interface HPCrudRepository<T,ID extends Serializable>{

    @Query("<how to write query here")
    public List getThis(String somevalue);

}
public interface HPCrudRepositoryCustom {
    public void customMethod();
}
然后提供执行处理的实现

public class HPCrudRepositoryImpl implements HPCrudRepositoryCustom {

    @Autowired
    HPCrudRepository hpCrudRepository; 

    public void customMethod(String somevalue) {
       // process someValue
       ...
       hpCrudRepository.getThis(processedOutcome);
    }
}

您还可以查看一些示例,

不完全是您正在寻找的解决方案,但您可以将自定义添加到spring数据存储库中

首先创建一个单独的接口

public interface HPCrudRepository<T,ID extends Serializable>{

    @Query("<how to write query here")
    public List getThis(String somevalue);

}
public interface HPCrudRepositoryCustom {
    public void customMethod();
}
然后提供执行处理的实现

public class HPCrudRepositoryImpl implements HPCrudRepositoryCustom {

    @Autowired
    HPCrudRepository hpCrudRepository; 

    public void customMethod(String somevalue) {
       // process someValue
       ...
       hpCrudRepository.getThis(processedOutcome);
    }
}

您也可以查看一些示例,

我认为没有一个解决方案可以满足您的需求。但是如果您不想创建自己的实现类,您可以直接在接口中进行预处理

在Java8中,添加了
default
关键字,使功能能够在接口方法中编写逻辑

因此,您可以创建一个预处理方法,然后调用接口的正确查询方法

public interface UserRepository extends JpaRepository<User, Long>{

    @Query("Select u from User u where u.name = :s")
    User findUserByName(@Param("s") String s);

    default User findUserByNamePreprocessing(String s) {
        //do you reprocessing stuff here..
        return this.findUserByName(s);
    }
}

我认为对于小型和简单的预处理需求来说,这是一个很好的简单解决方案。如果变得复杂,请创建一个实现类。

我认为没有一个解决方案可以满足您的需求。但是如果您不想创建自己的实现类,您可以直接在界面中进行预处理

在Java8中,添加了
default
关键字,使功能能够在接口方法中编写逻辑

因此,您可以创建一个预处理方法,然后调用接口的正确查询方法

public interface UserRepository extends JpaRepository<User, Long>{

    @Query("Select u from User u where u.name = :s")
    User findUserByName(@Param("s") String s);

    default User findUserByNamePreprocessing(String s) {
        //do you reprocessing stuff here..
        return this.findUserByName(s);
    }
}

我认为这是一个很好且简单的解决方案,适用于小而简单的预处理需求。如果变得复杂,请创建一个实现类。

不认为这是可能的。你必须编写接口的实现。不认为这是可能的。你必须编写接口的实现。看起来很整洁,但不幸的是,我仅使用1.7。看起来不错,但不幸的是,我仅使用1.7。为什么我应该仅出于示例目的自动连接HPCRUDepository。您可以自动连接实体管理器并使用jpa api,也可以使用crud bean并使用默认操作。示例已编辑。为什么我应该仅出于示例目的自动连接HPCRUDepository。您可以它自动连接实体管理器并使用JPAAPI或CRUDbean并使用默认操作。示例已编辑。