J'ai des problèmes pour concevoir une requête dans un CrudRepository.CrudRepository: trouver par plusieurs entités connexes
J'ai deux entités, CourseOffering et Département (uniquement le code correspondant indiqué):
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;
}
}
et la CrudRepository en question :
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);
}
Les trois fonctions dans CourseOfferingRepository qui ne sont pas commentées fonctionnent comme prévu. J'essaie de faire fonctionner le quatrième.
Ce que je voudrais faire est de pouvoir retourner tous les CourseOfferings où le code de département est l'un des nombreux codes de département. Notez que la table CourseOffering ne contient elle-même qu'un nombre entier department_id qui fait référence à l'ID dans la table Department, où le deptCode réel est stocké.
Comment est-ce que je ferais pour commenter la fonction CrudRepository pour fonctionner correctement? Ou, en d'autres termes, comment fait-on la version plurielle de "List findByDepartmentCode (String deptCode);"?
Merci d'avance pour tout conseil que vous pouvez offrir.
Est-ce que 'findByDeptCodeIn (Collection deptCodes)' faire ce que tu veux? –
geoand
Oui, merci! Je ne savais pas sur le «In» peu là à la fin. – Christopher
J'ai ajouté le commentaire comme réponse :) – geoand