如何避免對資料庫進行不必要的查詢?我有兩個嵌套物體的 LoadEntity - CarrierEntity 和 DriverEntity。Java類:
@Entity
public class LoadEntity {
...
@ManyToOne
@JoinColumn(name="carrier_id", nullable=false)
private CarrierEntity carrierEntity;
@ManyToOne
@JoinColumn(name="driver_id", nullable=false)
private DriverEntity driverEntity;
}
但 API 向我發送carrierId和driverId。我做到了:
DriverEntity driverEntity = driverService.getDriverEntityById(request.getDriverId());
loadEntity.setDriverEntity(driverEntity);
loadRepository.save(loadEntity);
如何只用 JPA 撰寫 driverId?
uj5u.com熱心網友回復:
使用 Spring Data JPA,您始終可以使用純 SQL。當然,這將避開 JPA 為您提供的所有出色/煩人的邏輯。這意味著您不會收到任何事件,并且記憶體中的物體可能與資料庫不同步。出于這個原因,如果您使用樂觀鎖定,您還可以增加版本列。
也就是說,您可以像這樣更新 sing 欄位:
interface LoadRepository extends CrudRepository<LoadEntity, Long> {
@Query(query="update load_entity set driver_id = :driverId where carrier_id=:carrier_id", nativeQuery=true)
@Modifying
void updateDriverId(Long carrierId, Long driverId);
}
如果你只是想避免加載DriverEntity你也可以使用JpaRepository.getById
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/435698.html
