I want to filter motherName
and sisterName
but I don't know how to write a filter for embedded class. Please help me to solve this issue. Thank you in advance!
Family1 class
@Entity
public class Family1 {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
private int id;
@Embedded
private FamilyNames familyNames;
@Column(nullable=false,name="familyMemebers")
private int familyMembers;
@Column(nullable=false,name="contactNo")
private long contactNo;
@Embedded
@Column(nullable=false, name="Address" )
private Address address;
public Family1() {}
// getters,setters
FamilyNames class
@Embeddable
public class FamilyNames {
private String yourName;
private String fatherName;
private String motherName;
private String sisterName;
public FamilyNames() {}
//getters, setters
Family1Controller class
@RestController
@RequestMapping(value = "/family1")
public class Family1Controller {
@Autowired
private Family1Service family1Service;
@RequestMapping(method=RequestMethod.GET,value="/fam1")
public List<Family1> listOfDetails(@RequestParam("keyword") String keyWord){
return family1Service.listOfDetails(keyWord);
}
}
Family1Service class
@Service
public class Family1Service {
@Autowired
private Family1Repository familyRepository;
public List<Family1> listOfDetails(String keyWord) {
return familyRepository.findAll();
}
}
Family1Repository class:
@Repository
public interface Family1Repository extends JpaRepository<Family1,Integer> {
@Query("Select f from family1 f where f.familyNames.motherName LIKE %?1%"
+ "OR f.familyNames.sisterName %?1%")
List<Family1> findAll(String keyWord);
}
please help me which way to filter particular name in embedded class using query annotation