Ho difficoltà a progettare una query in un CrudRepository.CrudRepository: trova per più entità correlate
ho due entità, CourseOffering e Dipartimento (solo il codice rilevante mostrato):
CourseOffering.java:
public class CourseOffering implements Serializable
{
private Department department;
@ManyToOne(fetch = FetchType.LAZY, optional = true)
@JoinColumn(name = "DepartmentId", nullable = true)
@JsonProperty
public Department getDepartment()
{
return this.department;
}
public void setDepartment(Department department)
{
this.department = department;
}
}
Department.java:
public class Department implements Serializable
{
private Set<CourseOffering> courses;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "department")
public Set<CourseOffering> getCourses() {
return this.courses;
}
public void setCourses(Set<CourseOffering> courses) {
this.courses = courses;
}
}
e il CrudRepository in questione :
CourseOfferingRepository.java:
import java.util.List;
import edu.ucdavis.dss.dw.entities.CourseOffering;
import org.springframework.data.repository.CrudRepository;
public interface CourseOfferingRepository extends CrudRepository<CourseOffering, Long>
{
CourseOffering getOneByTermIdAndNumberAndDepartmentId(long termId, String number,
long departmentId);
List<CourseOffering> findByDepartmentCode(String deptCode);
//List<CourseOffering> findAllByDepartmentCode(String deptCodes);
List<CourseOffering> findByTermCode(String termCode);
}
Le tre funzioni in CourseOfferingRepository che non sono commentate funzionano come previsto. Sto cercando di far funzionare il quarto.
Quello che mi piacerebbe fare è poter restituire tutte le CourseOfferings in cui il codice di dipartimento è uno dei molti codici di dipartimento. Si noti che la tabella CourseOffering stessa contiene solo un numero intero di department_id che fa riferimento all'ID nella tabella Department, in cui è archiviato il deptCode effettivo.
Come fare per ottenere che la funzione CrudRepository commentata funzioni correttamente? O in un altro modo, come si fa la versione plurale di "List findByDepartmentCode (String deptCode);"?
Grazie in anticipo per qualsiasi consiglio che puoi offrire.
Does 'findByDeptCodeIn (raccolta deptCodes)' fare ciò che vuoi? –
geoand
Sì, grazie! Non sapevo del bit "In" alla fine. – Christopher
Ho aggiunto il commento come risposta :) – geoand