jpa constructeur expressions avec de multiples SÉLECTIONNEZ de NOUVEAUX états

Est-il un moyen d'avoir plusieurs SELECT NEW déclarations dans un jpql requête (Hibernate)?

Cela fonctionne pour moi:

@Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r) "
        +" FROM Item g, Service s, Service l , Service r"
        +" WHERE s.id = g.id" 
        +" AND s.location = l.name"
        +" AND s.serviceType = 'type'"
        +" AND l.serviceType = 'Location'"
        +" AND l.area = r.name" 
        +" AND r.serviceType = 'Region'")
public List<Item> getAllItemsWithServices();

- Je obtenir le Résultat escompté dans mon DTO.

@Component
public class ItemServiceDTO{

    private Item item;
    private Service serviceType;
    private Service serviceLocation;
    private Service serviceRegion;

    public ItemServiceDTO(item item, Service serviceType, Service serviceLocation, Service serviceRegion) {
        super();
        this.item = item;
        this.serviceType = serviceType;
        this.serviceLocation = serviceLocation;
        this.serviceRegion = serviceRegion;
    }

Mais ce que je veux, c'est avoir une nouvelle instance de Language avec son constructeur.

Par exemple comme ceci:

 @Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r), new LanguageDTO()"
            +" FROM Item g, Service s, Service l , Service r"

Ou dans une sous-sélection de ItemService

 @Query("SELECT NEW com.test.project.dto.ItemService(g,s,l,r, new LanguageDTO())"
                +" FROM Item g, Service s, Service l , Service r"

Je m'intéresse également à l'aide de Map et List dans mon DTO Objets, mais j'ai lu c'est pas possible? Est ce que le droit?

Mon Ressort de démarrage de l'application démarre avec des erreurs lors de l'utilisation du deux exemples.

À la fin, je veux une Carte de Map<List<Item>,Map<List<LanguageDTO>,List<ItemServiceDTO>>> map;

  • Quel est votre fournisseur JPA (c'est à dire EclipseLink, Hibernate)?
  • Désolé, sa mise en veille prolongée
  • bonjour. Je suis en train d'utiliser l'opérateur new, mais ne trouvent que peu de ressources. question: voulez-vous créer une app pensions de l'interface et le lieu de cette déclaration: public List<Item> getAllItemsWithServices(); en ce qui repo? Un exemple ou une référence à un exemple complet serait très appréciée. Merci
InformationsquelleAutor Patrick | 2015-10-28