2016-06-06 13 views
5

Quando provo ad ottenere gli utenti utilizzando l'interfaccia repository ho ricevuto seguente eccezione "org.springframework.dao.InvalidDataAccessApiUsageException: Nessun alias trovato nel risultato tuple Assicurarsi che la query definisce alias !; eccezione annidata is java.lang.IllegalStateException: nessun alias trovato nella tupla dei risultati! Assicurati che la tua query definisca gli alias! "spring data jpa: nessun alias trovato nella tupla dei risultati! Assicurarsi che la query definisce alias

Repository:

@Repository 
public interface UserRelationshipRepository 
     extends JpaRepository<UserRelationship, Long>, QueryDslPredicateExecutor<UserRelationship> { 

    @Query(value = "SELECT ur.id.toUser FROM UserRelationship ur WHERE ur.fromUser = :fromUser AND ur.relationshipTypeId = 1") 
    Set<User> findUserFriends(@Param("fromUser") User fromUser); 
} 

Entità:

@Entity 
@NamedEntityGraph(name = "graph.User", attributeNodes = {}) 
@Table(name = "users") 
public class User extends BaseEntity implements UserDetails { 

    private static final long serialVersionUID = 8884184875433252086L; 

    @Id 
    @SequenceGenerator(name = "users_id_seq", sequenceName = "users_id_seq", allocationSize = 1) 
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "users_id_seq") 
    private Long id; 

    @Column(name = "first_name") 
    private String firstName; 

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "fromUser", cascade = CascadeType.ALL) 
    private Set<UserRelationship> relationships = new HashSet<UserRelationship>(); 
// getters setters 
} 

@Entity 
@NamedEntityGraph(name = "graph.UserRelationship", attributeNodes = {}) 
@Table(name = "users_relationships") 
public class UserRelationship extends BaseEntity implements Serializable { 

    private static final long serialVersionUID = -6367981399229734837L; 

    @EmbeddedId 
    private final UserRelationshipId id = new UserRelationshipId(); 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "from_user_id", nullable = false) 
    @MapsId("fromUserId") // maps fromUserId attribute of the embedded id 
    private User fromUser; 

    @Column(name = "relationship_type_id") 
    private Long relationshipTypeId; 

} 

Sto usando '1.11.0.BUILD-SNAPSHOT' versione di JPA dati di primavera. Questo è già noto issue ed è contrassegnato come risolto, ma continuo a riceverlo.

Per favore, aiutami a risolvere questo.

Aggiornamento: Se cambio tipo di ritorno del metodo di repository per Set<Object> poi tutto funziona benissimo.

risposta

0

Si sta eseguendo DATAJPA-885, che è già stato risolto e sarà parte della release SR2 di Spring Data Hopper.

+0

Grazie, per la risposta. Potresti dirmi la data approssimativa di rilascio? –

+0

Per favore, fammi sapere è possibile ottenere la soluzione? –

+0

Stiamo girando per il 15 giugno. Sentiti libero di provare le istantanee! :) –

Problemi correlati