Estoy tratando de obtener un registro haciendo una unión. Soy nuevo en Spring jparepository. Entiendo que hay un repositorio separado para cada entidad (tabla) donde cuando implemento necesito definir la entidad y el tipo de datos de la clave principal.
¿Alguien podría sugerir cómo puedo obtener un registro uniendo dos tablas?
Tengo dos repositorios como se muestra a continuación:
public interface AEntityRepository extends JpaRepository<AEntity, Integer> public interface BEntityRepository extends JpaRepository<BEntity, Integer>Quiero unirme a las dos entidades anteriores (AEntity, BEntity). Sé que puedo tener una consulta personalizada usando algo como a continuación:
@Query("SELECT ****** FROM AEntity ae") AEntity findCustomrRecords();Sin embargo, ¿puedo escribir el mismo tipo de consulta (consulta de unión) con join? ¿Necesito tener un repositorio separado que implemente alguna otra clase?
Alguien puede ayudarme porfavor.
Estoy usando mysql.
Entiendo que hay un repositorio separado para cada entidad (tabla)
Este es un malentendido muy común. No desea tener un repositorio por entidad, sino por raíz agregada. Ver http://static.olivergierke.de/lectures/ddd-and-spring/
Con respecto a su problema específico en cuestión: crear un método personalizado en la interfaz de su repositorio y anotarlo con un JPQL debería ser el truco. Entonces obtienes algo como:
@Query("select a from BEntity b join ba a where b.foo = :foo") AEntity getAllFooishAs(String foo);Puede usar cualquier sintaxis de combinación que ofrezca JPQL en la consulta.