package com.netsurfingzone.entity;
@Entity
public class Car {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "model_name")
private String model_name;
@Column(name = "model_year")
private String model_year;
@Column(name = "price")
int price;
}
@Repository
public interface CarRepository extends CrudRepository {
List findByModelName(String model_name);
List findByModelNameAndModelYear(String model_name, String model_year);
List findByModelNameOrModelYear(String model_name, String model_year);
}
NamedQueries are queries that are static and are given a meaningful name. You create a single named-query through the @NamedQuery annotation and bundle them under the @NamedQueries annotation. The queries are inserted with other annotations above the entity definition.
For the given case, the named queries would look like below.
@NamedQuery(name = "Car.findByName", query = "select c from Car c where c.name = ?1")
@NamedQuery(name = "Car.findByModelNameAndModelYear", query = "select c from Car c where c.name = ?1 and c.rollNumber = ?2")
@NamedQuery(name = "Car.findByModelNameOrModelYear", query = "select c from Car c where c.name = ?1 or c.rollNumber = ?2")
Note: Commonly asked JPA interview question