2017-12-27 6 views
0

das Repository unterfalsche SQL-Abfrage durch Feder Daten JPA erzeugt

@Repository 
public interface DashboardRepository 
     extends PagingAndSortingRepository<Dashboard, Long> { 
    @Query("SELECT " + 
      " d " + 
      "FROM " + 
      " Dashboard d " + 
      "WHERE " + 
      " d.branchUserId= :userId " + 
      "OR d.restUserId = :userId " + 
      "ORDER BY " + 
      " d.orderId DESC") 
    Page<Dashboard> findByBranchUserIdOrRestUserId(@Param("userId") Long userId, Pageable pageable); 
} 

gegeben, wenn ich einen Anruf zu findByBranchUserIdOrRestUserId mache ich die folgende Abfrage sehen generiert:

SELECT 
    COUNT(dashboard0_.ORDER_ID) AS col_0_0_ 
FROM 
    DAILY_ORDERS dashboard0_ 
WHERE 
    dashboard0_.BRANCH_USER_ID=? 
OR dashboard0_.REST_USER_ID=? 

Irgendwelche Hinweise, was könnte das Problem sein ?

UPDATE: Die Entität Dashboard ist einer Datenbankansicht zugeordnet. Wenn ich direkt in der Datenbank ausführen, bekomme ich Zeilen zurück. Jedoch, wenn ich dashboardRepository.count() ausführen, bekomme ich Null.

Antwort

0

ich das annehmen würde, hat mit Spring inferred "countQuery"

In der Dokumentation zu tun ist, spricht über Paginierung und benutzerdefinierte @Queries

public interface UserRepository extends JpaRepository<User, Long> { 

    @Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1", 
    countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1", 
    nativeQuery = true) 
    Page<User> findByLastname(String lastname, Pageable pageable); 
} 

Ref: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query

+0

, wenn ich für dashboardRepository überprüfen .count() Ich bekomme 0. Meine Entität ist der Datenbankansicht zugeordnet. wenn ich * aus my_view (direkt auf db) wähle, sehe ich dort Zeilen, nicht sicher, warum ich 0 Datensätze zurückgelangen sehen und zählen ist 0 – Ayub

Verwandte Themen