我在春天的數據是新的,我正在學習如何使用它。 我想,我需要兩個類型的查詢: 1)簡單的查詢,我可以查詢方法獲得這樣春數據和查詢方法
public interface CarRepository extends JpaRepository<Car, Integer> {
List<Car> findByid_Fleet(int idFleet);
}
,但我獲得無效的衍生查詢!找不到類型爲String的物業車隊!遍歷路徑:Car.id. 車表中有id_fleet,一個外鍵。
2)我需要複雜的查詢,我該怎麼寫呢? 我的代碼是這樣構成(例如,對於一個域類):
public interface CarRepository extends JpaRepository<Car, Integer> {
List<Car> findByid_Fleet(int idFleet);
}
汽車服務
public interface CarServices extends GeneralServices<Car, Integer>{
/**
* Return list of cars for one fleet
* @param idFleet
* @return
*/
public List<Car> findCarsByIdFleet(int idFleet);
}
carServicesImpl
@Service
public class CarServicesImpl implements CarServices {
@Resource
private CarRepository carRepository;
@Override
public Car create(Car car) {
return carRepository.save(car);
}
@Override
public Car findById(Integer id) {
return carRepository.getOne(id);
}
@Override
public boolean exists(Integer id) {
return carRepository.exists(id);
}
@Override
public List<Car> findCarsByIdFleet(int idFleet) {
return carRepository.findByid_Fleet(idFleet);
}
}
和數據庫服務,我組我的數據庫的方法
@Service
public class DatabaseFleetsAndCarsServicesImpl implements DatabaseFleetsAndCarsServices {
static final Logger LOG = LoggerFactory.getLogger(DatabaseFleetsAndCarsServicesImpl.class);
@Autowired
private CarServices carServices;
@Autowired
private FleetServices fleetServices;
@Override
public List<Fleet> getFleets() {
return fleetServices.getFleets();
}
@Override
public List<Car> getCars(int idFleet) {
return carServices.findCarsByIdFleet(idFleet);
}
}
我的車類的
部分:
/**
* Car generated by hbm2java
*/
@Entity
@Table(name = "car", catalog = "ATS")
public class Car implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer idCar;
private CarType carType;
private Fleet fleet;
private String id;
private int initialKm;
private String carChassis;
private String note;
private Set<Acquisition> acquisitions = new HashSet<Acquisition>(0);
....
這個錯誤,我有艦隊對象在我的車類。所以我必須通過id檢索Fleet,並將此對象放入findByFleet方法中? – luca
沒有,只是命名方法:findByFleetId ...它會首先檢查會員艦隊在汽車類,年底然後檢查ID件艦隊類... – Pras
如果我使用List findByFleetId(INT idFleet);我收到無效派生查詢!找不到類型爲Fleet的媒體資源ID!遍歷路徑:Car.fleet。 –
luca