1.参数为属性
1.1 可以采用占位符的方式进行绑定
@Query(nativeQuery = true, value = "INSERT INTO dir_inf(dir_name,dir_user_id,dir_path) VALUES\n" +
"(?1,?2,?3)")
public void addRootFolder(String username, Integer id, String name);
2.参数为对象
当Dao层的方法中所传参数为对象时,使用下面的注解进行绑定
:#{#entity.property}
@Modifying
@Transactional
@Query(nativeQuery = true,value = "update dir_inf set " +
"dir_name=:#{#folder.name},parent_dir=:#{#folder.parentFolder},dir_user_id=:#{#folder.createUser.id},dir_path=:#{#folder.path} where\n" +
"\t\tdir_id=:#{#folder.id}")
public void updateFolder(Folder folder);
以上方法亲测有效。在使用JPA自定义SQL语句的时候可以参照以上方法进行设置。
🤦♀️🤦♀️🤦♀️🤦♀️🤦♀️