首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用JPA和@Query命名参数将数据转换为MySQL

如何使用JPA和@Query命名参数将数据转换为MySQL
EN

Stack Overflow用户
提问于 2015-05-02 15:36:17
回答 2查看 2K关注 0票数 0

我收到以下错误:

代码语言:javascript
运行
复制
Using named parameters for method public static void com.htd.repository.MaterialRepository.uploadMaterialData(java.lang.String,java.math.BigDecimal,java.lang.String,java.math.BigDecimal,java.math.BigDecimal) but parameter 'material_number' not found in annotated query 'INSERT INTO hillcresttooldie VALUES (?,?,?,?,?)'!

我在http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/reference/html/jpa.repositories.html上阅读了文档,但我仍然有问题。我的印象是JPA为我们创建了查询。我习惯于写出查询,直到我看到这项令人惊叹的技术。

代码语言:javascript
运行
复制
public interface MaterialRepository extends JpaRepository<Material,Long> {

    @Query("INSERT INTO hillcresttooldie VALUES (?,?,?,?,?)")
    static void uploadMaterialData(String material_number,BigDecimal material_thickness,String material_size,BigDecimal lb_per_sheet,BigDecimal dollar_per_lb) {


    }
}

正在尝试使用MaterialResource.java文件中的查询

代码语言:javascript
运行
复制
//puts materials into map and the key is the material number
                materialMap.put(materialValue, material);

                MaterialRepository.uploadMaterialData(material.getMaterial_number(), material.getMaterial_thickness(),
                        material.getMaterial_size(), material.getLb_per_sheet(), material.getDollar_per_lb());
EN

回答 2

Stack Overflow用户

发布于 2015-05-02 15:43:52

将代码更改为

代码语言:javascript
运行
复制
@Query("INSERT INTO hillcresttooldie (material_number,material_thickness,material_size,lb_per_sheet,dollar_per_lb) VALUES (:number, :thickness, :size, :lbPerSheet, :dollarPerLb)")
void uploadMaterialData(String number, BigDecimal thickness, String size, BigDecimal lbPerSheet, BigDecimal dollarPerLb)
票数 0
EN

Stack Overflow用户

发布于 2015-05-02 15:47:19

尝试:

代码语言:javascript
运行
复制
public interface MaterialRepository extends JpaRepository<Material,Long> {

@Modifying
@Query(nativeQuery = true,"INSERT INTO hillcresttooldie(material_number,material_thickness,material_size,lb_per_sheet,dollar_per_lb) VALUES (?1,?2,?3,?4,?5)")
static void uploadMaterialData(String material_number,BigDecimal material_thickness,String material_size,BigDecimal lb_per_sheet,BigDecimal dollar_per_lb) {


}

}

代码语言:javascript
运行
复制
public interface MaterialRepository extends JpaRepository<Material,Long> {

@Query("INSERT INTO hillcresttooldie(material_number) VALUES (:material_number)") //....
static void uploadMaterialData(@Param("material_number") String material_number) {


}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29999683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档