Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Spring 如何实现这个想法?使用控制器、ServiceImple、存储库、演示文稿_Spring_Spring Mvc_Spring Data Jpa - Fatal编程技术网

Spring 如何实现这个想法?使用控制器、ServiceImple、存储库、演示文稿

Spring 如何实现这个想法?使用控制器、ServiceImple、存储库、演示文稿,spring,spring-mvc,spring-data-jpa,Spring,Spring Mvc,Spring Data Jpa,如何实现这个想法? 给我发送信息:{“idBanner”:2,“fullnameClient”:“Aria”}。 如果单击不包含在数据库中,则单击保存并发送电子邮件businesscenter。否则,发送一条消息:“您已响应” (实体):单击绑定横幅,横幅绑定Businesscentr 方法帖子,正文:{“idBanner”:2,“fullnameClient”:“Aria”}您试图混合使用两种方法:使用JPA和JDBC。通常,您应该避免在JPA中使用本机查询,JPA实体有自己的生命周期,并由E

如何实现这个想法? 给我发送信息:{“idBanner”:2,“fullnameClient”:“Aria”}。 如果单击不包含在数据库中,则单击保存并发送电子邮件businesscenter。否则,发送一条消息:“您已响应”

(实体):单击绑定横幅,横幅绑定Businesscentr


方法帖子,正文:{“idBanner”:2,“fullnameClient”:“Aria”}

您试图混合使用两种方法:使用JPA和JDBC。通常,您应该避免在JPA中使用本机查询,JPA实体有自己的生命周期,并由EntityManager管理

您的服务代码可能如下所示:

     @Transactional
     public Click sentSaveClick(String fullnameClient, long idBanner) {
        Banner banner = bannerRepositor.findOne(idBanner); //get existing banner from DB
        Click click = new Click(); //create new detached instance of Click class
        click.setBanner(banner); //set banner
        click.setFullnameClient(fullnameClient); //set fullName
        click = clickRepository.save(click); //store it to DB and get managed instance of Click
        return click;
    }
还要注意查询中返回的类型。例如,
sent
返回
String
,但是
idClick
的类型是
long

您可以将此查询替换为JPA版本:

    @Query("FROM Click WHERE fullnameClient = :fullnameClient AND banner.idBanner = :idBanner")
    Click sent(@Param("fullnameClient") String fullnameClient, @Param("idBanner") long idBanner);
服务:

 @Transactional
 public boolean sent(String fullnameClient, long idBanner) {
    Click click = clickRepository.sent(fullnameClient, idBanner); 
    return click != null;
}

问题是什么?哪个查询?有什么例外?@Query(value=“插入到Click(fullnameClient,idBanner)值(:fullnameClient,:idBanner)”,nativeQuery=true)字符串sentsaveclick(@Param(“fullnameClient”)字符串fullnameClient,@Param(“idBanner”)长idBanner);为什么您要尝试使用JPA和Spring数据JPA?JPA为您管理所有这些,但您正在努力解决这些问题。让JPA做它自己的事情,而不是试图比您的JPA映射框架更智能(否则不要使用JPA,而只是使用普通的JDBC)。此外,本机插入不应返回
字符串
。您希望得到什么结果?混合使用两种方法:使用JPA和JDBC-这是因为使用@Query?因为您试图在JPA之外使用
nativeQuery
直接将数据存储到数据库中。更新答案。但是获取HTTP状态415。{“idBanner”:2,“fullnameClient”:“三亚”}。预期返回响应单击“you have response”,因为数据库中有一条记录。因为在注释
@RequestMapping
中,您已经生成了
producted=“application/json”
,但是
您已经响应了
显然不是json@NewWave这要看情况了,用户正在等待来自
POST/sentmail
的何种信息。如果他正在等待有关BusinessCenter的所有信息,那么我建议他创建新的
businessscentrepresentation
,并将其返回。如果像以前一样,用户只等待电子邮件,请向他发送简单的json
{“email”:ema@il.com“}
。换句话说,保持你的外部合同尽可能简单。