org.springframework.data.mapping.PropertyReferenceException: No property save found for type Client

i’m working on a spring project with my team and I’m facing this error. I made some research on google but found nothing so here we go. I’ll put all concerned files

Client.java

package com.takeandgo.beans;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

/**
 * An entity Client composed by fields (id, email, name,password,tel,naissance).
 * The Entity annotation indicates that this class is a JPA entity. The Table
 * annotation specifies the name for the table in the db.
 *
 * @author Kambi Ben
 */

 @Entity
 @Table(name = "client_clt")
 public class Client {

// ------------------------
// PRIVATE FIELDS
// ------------------------

// An autogenerated id (unique for each user in the db)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "clt_id")
private int id;

// The user's name
@NotNull
@Column(name = "clt_prenom")
private String prenom;
// The user's email
@NotNull
@Column(name = "clt_login")
private String email;
// The user's password
@NotNull
@Column(name = "clt_mdp")
private String password;
// The user's phone
@NotNull
@Column(name = "clt_tel")
private String tel;
// The user's email
@NotNull
@Column(name = "clt_naissance")
private String naissance;

// ------------------------
// PUBLIC METHODS
// ------------------------

/**
 * 
 */
public Client() {
    super();
    // TODO Auto-generated constructor stub
}

public Client(int id, String prenom, String email, String password, String tel, String naissance) {
    super();
    this.id = id;
    this.prenom = prenom;
    this.email = email;
    this.password = password;
    this.tel = tel;
    this.naissance = naissance;
}

public Client(String prenom, String email, String password, String tel, String naissance) {
    super();
    this.prenom = prenom;
    this.email = email;
    this.password = password;
    this.tel = tel;
    this.naissance = naissance;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getPrenom() {
    return prenom;
}

public void setPrenom(String prenom) {
    this.prenom = prenom;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getTel() {
    return tel;
}

public void setTel(String tel) {
    this.tel = tel;
}

public String getNaissance() {
    return naissance;
}

public void setNaissance(String naissance) {
    this.naissance = naissance;
}

}

IDaoClient.java this is the file for my queries

package com.takeandgo.idao;

import javax.transaction.Transactional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import com.takeandgo.beans.Client;
import com.takeandgo.beans.MailStatus;

@Transactional
public interface IDaoClient extends JpaRepository<Client, Integer> {

// return 0 or 1 if they okey needto describe this methode on ClientDAO
Client saveAndFlush(Client client);

Client findById(int id);


@Query("SELECT c FROM Client c WHERE c.email = :email AND c.password = :mdp")
public Client find(@Param("email") String email, @Param("mdp") String mdp);

MailStatus save(MailStatus mail);
//@Query("INSERT INTO MailStatus ms (ms.mail, ms.code, ms.status) VALUES(:mail, :code, :status)")
//public void addMail(@Param("mail") String mail, @Param("code") String code, @Param("status") String status);

@Query("UPDATE MailStatus ms SET ms.status = 'verified' WHERE ms.code = :code")
public String setVerified(@Param("code") String code);

@Query("SELECT COUNT(ms) FROM MailStatus ms WHERE ms.code = :code")
public void findCode(@Param("code") String code);

}

ClientDao.java

package com.takeandgo.dao;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.takeandgo.beans.Client;
import com.takeandgo.beans.MailStatus;
import com.takeandgo.idao.IDaoClient;

// need the annotation Component for injection
@Component
public class ClientDao {

// injection
@Autowired
private IDaoClient iDaoClient;

public ClientDao() {

}

// return the client save in the DB
public Client addClient(Client client, String code) {

    Client clientReturn = iDaoClient.saveAndFlush(client);

    MailStatus ms = new MailStatus(client.getEmail(), code, "unverified");
    iDaoClient.save(ms);

    return clientReturn;

}

public Client findClient(Client client) {

    Client clientFind = iDaoClient.find(client.getEmail(), client.getPassword());

    return clientFind;
}


public void SetMailVerified(String code) {

    iDaoClient.setVerified(code);

}

public boolean findCode(String code) {

    try {
        iDaoClient.findCode(code);
        return true;
    }catch(Exception e){
        return false;
    }
}
}

MailStatus.java

package com.takeandgo.beans;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

@Entity
@Table(name = "status_compte_sc")
public class MailStatus {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "sc_clt_id_id")
private String id ;

@NotNull
@Column(name = "sc_clt_mail")
private String mail;

@NotNull
@Column(name = "sc_clt_code")
private String code;

@NotNull
@Column(name = "sc_clt_mail_status")
private String status;

public MailStatus(String mail, String code, String status) {

    this.mail = mail;
    this.code = code;
    this.status = status;
}

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getMail() {
    return mail;
}

public void setMail(String mail) {
    this.mail = mail;
}

public String getCode() {
    return code;
}

public void setCode(String code) {
    this.code = code;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

}

InscriptionController.java

package com.takeandgo.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.takeandgo.beans.Client;
import com.takeandgo.dao.ClientDao;
import com.takeandgo.utils.RandomCodeGenerator;
import com.takeandgo.utils.SendMail;

@Controller
public class InscriptionController {

// ------------------------
// PUBLIC METHODS
// ------------------------
@Autowired
private ClientDao clientDao;


@RequestMapping(value = "/creat-client")
@ResponseBody
public void create(HttpServletRequest req, HttpServletResponse res, @ModelAttribute("user") Client client, Model model) throws IOException, JSONException {
    System.out.println("-- in creat-client Action --");

    String name = req.getParameter("name");
    String email = req.getParameter("email");
    String password = req.getParameter("password");
    String tel = req.getParameter("tel");
    String naissance = req.getParameter("naissance");
    JSONObject json = new JSONObject();
    // name.matches(regExpression);

    String code = null;
    RandomCodeGenerator rnd = new RandomCodeGenerator();
    SendMail mail = new SendMail();

    System.out.println(client.getPrenom()+ " - " +  client.getEmail() + " - " + client.getPassword() + " - " + client.getPassword() + " - " + client.getNaissance());
    if (name.length() != 0 && email.length() != 0 && password.length() != 0 && tel.length() != 0
            && naissance.length() != 0) {
        json.put("SUCCESS", "OK");
        json.put("REDIRECT", "/takeandgo/");

        code = rnd.codeGeneratorForEmail();
        mail.sendVerificationLink(name, email, code);

        Client clientToSave = new Client(name, email, password, tel, naissance);
        clientDao.addClient(clientToSave, code);

    } else {

        if (name != null) {

            if (name.length() == 0) {
                json.put("NAME", "KO");

            }
            if (name.length() > 0) {
                json.put("NAME", "OK");

            }

        }
        if (email != null) {

            if (email.length() == 0) {
                json.put("EMAIL", "KO");

            }
            if (email.length() > 0) {
                json.put("EMAIL", "OK");

            }

        }
        if (password != null) {

            if (password.length() == 0) {
                json.put("PASSWORD", "KO");

            }
            if (password.length() > 0) {
                json.put("PASSWORD", "OK");

            }

        }
        if (tel != null) {

            if (tel.length() == 0) {
                json.put("TEL", "KO");

            }
            if (tel.length() > 0) {
                json.put("TEL", "OK");

            }

        }
        if (naissance != null) {

            if (naissance.length() == 0) {
                json.put("NAISSANCE", "KO");

            }
            if (naissance.length() > 0) {
                json.put("NAISSANCE", "OK");

            }

        }

    }

    returnJSON(res, json);

}

public void returnJSON(HttpServletResponse res, JSONObject json) throws IOException {
    res.setContentType("application/json");
    res.setCharacterEncoding("utf-8");
    PrintWriter out = res.getWriter();
    out.print(json.toString());
    out.flush();

}

//  
@RequestMapping(value = "/mail-verification/{code}")
@ResponseBody
public ModelAndView verifiedAccount(HttpServletRequest req, HttpServletResponse res, ModelMap model, @PathVariable String codeToVerify) {

    ModelAndView mv = null;

    if(clientDao.findCode(codeToVerify))
    {
        clientDao.SetMailVerified(codeToVerify);
        System.out.println("Verification succes");
        mv = new ModelAndView("public/Auth/MailVerificationOk");
    }else {

        System.out.println("Verification fail.... Something went wrong");
        mv = new ModelAndView("public/Auth/MailVerificationFailed");
    }

    return mv;  
}
}

ConnectionController.java

package com.takeandgo.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.takeandgo.beans.Client;
import com.takeandgo.dao.ClientDao;

/**
 * Servlet implementation class ConnectionController
 * 
 * @author Olamidé
 */
@Controller
public class ConnectionController {

@Autowired
private ClientDao clientDao;

@RequestMapping(value = "/connect-client", method = RequestMethod.POST)
@ResponseBody
public String connect(HttpServletRequest req, HttpServletResponse res, @ModelAttribute("user") Client client,
        ModelMap model) {
    String redirect = "";
    Client clientToConnect = null;
    try {
        clientToConnect = new Client(client.getPrenom(), client.getEmail(), client.getPassword(), client.getTel(),
                client.getNaissance());

        clientDao.findClient(clientToConnect);

        model.addAttribute("client", clientToConnect);

        redirect = "redirect:index";
    } catch (Exception e) {
        redirect = "redirect:sigin";
    }

    return redirect;
}

}

I’ve got errors while running the code. Firstly I used in IDaoClient.java INSERT INTO…VALUES to save in database here @Query("INSERT INTO MailStatus ms (ms.mail, ms.code, ms.status) VALUES(:mail, :code, :status)") but I got errors so I use JPA Repository method save() and I got this:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.takeandgo.dao.ClientDao com.takeandgo.controller.ConnectionController.clientDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.takeandgo.idao.IDaoClient com.takeandgo.dao.ClientDao.iDaoClient; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IDaoClient': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property save found for type Client!
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) ~[spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) ~[spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
at com.takeandgo.WebApplication.main(WebApplication.java:17) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-1.3.5.RELEASE.jar:1.3.5.RELEASE]
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.takeandgo.dao.ClientDao com.takeandgo.controller.ConnectionController.clientDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.takeandgo.idao.IDaoClient com.takeandgo.dao.ClientDao.iDaoClient; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IDaoClient': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property save found for type Client!
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
... 22 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.takeandgo.idao.IDaoClient com.takeandgo.dao.ClientDao.iDaoClient; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IDaoClient': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property save found for type Client!
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
... 24 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.takeandgo.idao.IDaoClient com.takeandgo.dao.ClientDao.iDaoClient; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IDaoClient': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property save found for type Client!
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
... 35 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IDaoClient': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property save found for type Client!
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
... 37 common frames omitted
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property save found for type Client!
at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:77) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:329) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:309) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:272) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:243) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.repository.query.parser.Part.<init>(Part.java:76) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:235) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.repository.query.parser.PartTree$Predicate.buildTree(PartTree.java:373) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:353) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:84) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:62) ~[spring-data-jpa-1.9.4.RELEASE.jar:na]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:100) ~[spring-data-jpa-1.9.4.RELEASE.jar:na]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:211) ~[spring-data-jpa-1.9.4.RELEASE.jar:na]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:74) ~[spring-data-jpa-1.9.4.RELEASE.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:416) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:206) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:251) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:237) ~[spring-data-commons-1.11.4.RELEASE.jar:na]
at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92) ~[spring-data-jpa-1.9.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
... 47 common frames omitted

That’s it…Hope you guys can help me find issue for this.

Answer

You cannot use the same repository for two entities MailStatus and Client. You should create new repository MailStatusRepo extends JpaRepository<MailStatus, YOUR_ID>, and define save method there (but there is no need, because Jpa provides such method by default) I hope, this will help you. Good luck.

Leave a Reply

Your email address will not be published. Required fields are marked *