0、我们在前后端传递数据时候,参数多的情况下,常常将这些参数封装成对象;当有些场景你需要使用JPA nativeQuery自定义SQL,要将这个对象insert时候,初学者似乎有点犯难,jpa不是spring-data项目的内容吗,所以在sql中也是支持SPEL表达式来获取参数,运用这个思路可以继续
1、示例如下
自定义sql部分
@Modifying@Query(nativeQuery = true,value ="insert into " +"t_file_resource " +"(id\n" +"resource_title\n" +"cover_url\n" +"url\n" +"menu_name\n" +"create_time\n" +"level2_id\n" +"update_time\n" +"url_refresh_time\n" +"cover_create_time\n" +"cover_refresh_time\n" +"is_deleted\n) " +"values" +"(null," +":#{#fileResource.resourceTitle}," +":#{#fileResource.coverUrl}," +":#{#fileResource.url}," +":#{#fileResource.menuName}" +":#{#fileResource.createTime}" +":#{#fileResource.level2_id}" +":#{#fileResource.updateTime}" +":#{#fileResource.urlRefreshTime}" +":#{#fileResource.coverCreateTime}" +":#{#fileResource.coverRefreshTime}" +":#{#fileResource.isDeleted}" +")")Integer insert(@Param("fileResource") FileResource fileResource);
2 注意:以上获取属性的办法 :#{#参数对项目,属性} 获取到对象的属性
注意:@Param(“fileResource”) 这是指定sql中的对象参数
注意:@Param不要导成ibatis的包了