JPA e query

11 views
Skip to first unread message

Cristiano Tomasi

unread,
May 1, 2012, 5:49:24 AM5/1/12
to jug...@googlegroups.com
Ciao a tutti

cominciano i casini con JPA, ho definito un Entity in questo modo:

public class Deck implements Serializable {
  private static final long serialVersionUID = 1L;
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;
  @OneToMany(targetEntity=Card.class, cascade = CascadeType.PERSIST)
  @JoinColumn(name="deckId", referencedColumnName="Id")
  private List<Card> CardCollection = new ArrayList<Card>();
  private String DeckName;
  @Transient
  private int DeckCurrentIndex;
  ....
  public Card getCardByIndex(int cardIndex){
    if (cardIndex<CardCollection.size()){
      return CardCollection.get(cardIndex);
    }
    else {
      return null;
    }
  }
 
ogni volta che eseguo un  getCardByIndex parte una query, e non e' quello che voglio.
Il caricamento della collection avviene in un altro metodo che eseguo al lancio dell'applicazione.
C'e' un modo per dire a JPA di non eseguire la query ma semplicemente di ritornare l'i-esimo elemento della lista (gia' caricata)?
ho visto che c'e' un metodo detach dell' EntityManager e' la strada giusta?

saluti
Cris.

Vítor Estêvão Silva Souza

unread,
May 1, 2012, 6:11:49 AM5/1/12
to jug...@googlegroups.com
Secondo me, se il collection è già stato caricato, JPA non dovrebbe provare a ricaricarlo. Sei sicuro che: (1) è già caricato; (2) è lo stesso oggetto?

detach() scollega l'oggetto della sezione e quindi JPA non lo gestisce più. Potrebbe essere una soluzione.

- Vítor



--
You received this message because you are subscribed to the Google Groups "JUG Trentino Alto Adige Suedtirol" group.
To post to this group, send email to jug...@googlegroups.com.
To unsubscribe from this group, send email to jugtaa+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/jugtaa?hl=en.

Cristiano Tomasi

unread,
May 1, 2012, 8:22:58 AM5/1/12
to jug...@googlegroups.com
Grazie Vitor

ho verificato, in effetti la query parte solo se la collection e' vuota, ovvero se non ho ancora eseguito il caricamento.

saluti
Cris.


2012/5/1 Vítor Estêvão Silva Souza <vitor...@gmail.com>
Reply all
Reply to author
Forward
0 new messages