Estoy usando QueryDSL para construir predicados en mi aplicación java, y parece que usar una ruta de clase que es demasiado grande crea una NullPointerException. ¿Alguno de ustedes ha tenido este problema alguna vez o es este el comportamiento normal?
Por ejemplo, digamos que tengo 5 clases anidadas ( Ciudad -> Área -> Casa -> Habitación -> Cama ) y quiero consultar si una Cama pertenece a un Área determinada según la identificación de esa área. Así que construiré una expresión booleana con:
public static BooleanExpression areaIdEquals(Long areaId) {
QBed bed = QBed.bed;
return bed.room.house.area.id.eq(areaId)
}
Esto arroja una NullPointerException porque aparentemente, el área siempre es nula.
Solo quiero saber si es de conocimiento común que hay un límite para el tamaño de la ruta de clases para este tipo de consulta, porque me parece extraño que el cuarto elemento de mi ruta sea siempre nulo. No puedo encontrar nada al respecto en la documentación.
Encontré la sección de la documentación que lo explica.
De forma predeterminada, Querydsl inicializa solo las propiedades de referencia de los dos primeros niveles. En los casos en que se requieran rutas de inicialización más largas, estas deben anotarse en los tipos de dominio mediante las anotaciones com.querydsl.core.annotations.QueryInit. QueryInit se usa en propiedades donde se necesitan inicializaciones profundas.
Probé la solución usando QueryInit y funciona.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras