JPA使用nativeQuery自定义SQL怎么插入一个对象参数呢?

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的包了

你可能感兴趣的:(springdatajpa,sql,java,数据库)