Ho una tabella con 11 colonne, ma ho bisogno di prenderne solo 2 nella mia applicazione, sto usando la combinazione spring/hibernate/DAO. Per ora ho una classe di dominio che include tutti e 11 i campi e un file di mappatura che mappa tutte e 11 le colonne nella tabella. Come si usa ottenere solo 2 di loro non tutti?Ottenere meno colonne con la sospensione
risposta
O:
Utilizzare proiezioni - Pro: nulla da aggiungere - Contro: Non tipizzate (il risultato è una
List
di righe in cui ogni riga è unObject[])
:select f.foo, f.bar from FatEntity f
Usa un'espressione costruttore nella clausola SELECT (la classe specificata non è richiesta per essere un'entità o per essere mappata al database) - Pro: soluzione typesafe - Con: Altre classi, a meno che non si riutilizzi
FatEntity
come titolare nel qual caso molti campi sarannonull
:select new com.acme.FatEntityDetails(f.id, f.foo, f.bar) from FatEntity f
Si noti che se un nome di classe di entità è specificato nella clausola
SELECT NEW
, le istanze di entità risultanti sono nel nuovo stato di(senza identità persistente).Utilizzare un'altra entità mappata sulla stessa tabella con solo i campi obbligatori - Pro: È un'entità reale che è possibile modificare e aggiornare - Con: Altre classi.
from LightEntity
Le principali differenze tra 2 e # 3 sono:
2 non richiede che il detentore di essere un'entità affatto.
- il titolare in # 2 potrebbe essere un'entità mappata su un'altra tabella.
- se # 2 restituisce entità, si trovano in un nuovo stato (potrebbe essere un problema o meno).
Prova:
SELECT myEntity.one, myEntity.two FROM MyEntity myEntity
Si può anche fare:
SELECT new MyEntityDescription(myEntity.one, myEntity.two) FROM MyEntity myEntity
per ottenere un elenco di descrizioni di entità.
Se non sono mai necessarie più di quelle 2 colonne della tabella, è possibile modificare la mappatura in modalità ibernazione per mappare solo le 2 colonne necessarie per la classe di entità. Mappare solo le colonne della tabella a cui si desidera accedere nella propria applicazione. Tieni presente che i vincoli del database sulle colonne "ignorate" possono essere violati come vincoli non nulli, chiavi esterne o vincoli univoci.
E per quanto riguarda la classe di dominio, devo avere anche 2 campi? –
- 1. SQL meno 2 colonne - con null valori
- 2. Confronto dati Visual Studio con meno colonne
- 3. Sospensione: la chiave esterna ha il numero sbagliato di colonne
- 4. griglia bootstrap 3.0 con meno di 12 colonne
- 5. Data Java Sospensione sospensione
- 6. Come ottenere colonne/campi con query peewee?
- 7. selezionare la query in sospensione con la clausola where
- 8. Tre colonne - ottenere MAX con SQL
- 9. Impossibile ottenere puntini di sospensione per funzionare su Android
- 10. Ottenere tutti gli elementi con meno di un mese
- 11. Impaginazione in sospensione con tavoli uniti
- 12. Disabilita la registrazione con sospensione da parte di Maven
- 13. Comportamento di System.Timers.Timer nell'applicazione WPF, dopo la sospensione e la sospensione?
- 14. Meno middleware con Express
- 15. Rimuovere i duplicati con meno valori nulli
- 16. Sospensione @JoinFormula
- 17. Proiezioni di sospensione complesse
- 18. Ottenere l'elemento meno comune nella gamma
- 19. Gestione automatica dell'attivazione della sospensione con molla?
- 20. Parametri facoltativi con query denominata in Sospensione?
- 21. come ottenere la media dei valori delle colonne del dataframe
- 22. Ottenere la somma di diverse colonne di due tabelle
- 23. Utilizzo della sessione di sospensione con quarzo
- 24. Disabilita la sospensione in determinate attività
- 25. Qual è la sintassi "..." (puntini di sospensione)?
- 26. Esiste la modalità di sospensione fluido?
- 27. Come chiamare la procedura memorizzata da sospensione?
- 28. Inserimenti batch con sospensione e molla
- 29. Ottenere un colonne DataTable DataType
- 30. Ricerca utilizzando la tabella con colonne separate
@Pascal Thivent non posso semplicemente lasciare 2 campi nella mia classe dominio e file di mapping? –
@Gandalf Beh, ho pensato che qualcuno stesse usando gli altri campi. Se questo non è vero, allora puoi davvero cambiare la tua entità attuale. –
Grazie per le molteplici soluzioni e spiegazioni, come vieni comunque? goderVi? leggere libri, allenarsi? Accetterò la tua risposta.se tu potessi indicarmi la giusta direzione sarebbe fantastico, come: siti web, esempi, libri. –