Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    460

    Toplink alle prime armi (autoincrement)

    Supponiamo semplificando di avere una tabella
    (table1)
    ID - nome

    dove id è autoincrement

    Una seconda tabella dove
    (table2)
    suoID - blabla - ID

    dove ovviamente ID è foreignkey di ID ( ONupdate, onDelete = CASCADE)

    Ora usando netbeans io creo delle Entity Classes dal db.

    E fin qua tutto ok.
    Uno dei metodi di table1 che mi viene generato è :

    Codice PHP:
        
        
    public void setTable2Collection(Collection<Table2table2Collection) {
            
    this.table2Collection table2Collection;
        } 
    bhè qua io associo la mia collection di oggetti di classe table2 ad un oggetto di classe table1 funziona tutto.

    Ora..se io faccio bel PERSIST(oggettotable1) lui mi dice quando inserisce pure le righe nella table2 l'table2.ID non può essere nullo.

    Ovvio! Viene generato da db!

    Ho provasto a mettere

    Codice PHP:
        @Id 
    ->    @GeneratedValue
        
    @Column(name "ID"nullable false)
        private 
    Integer id
    Ma non cambia un ciufolo.

    Cioè mi sembrerebbe brutto levare il foreign keys e farlo a mano facendo persistere l'oggetto della tabella1, e andando poi a leggere il suo id.
    Ora so che sicuramente c'è modo.

    Tra le altre cose non capisco perchè tra i metodi di table2 c'è :


    Codice PHP:
      public void setId(Table1 id) {
            
    this.id id;
        } 
    Quindi non è più un integer, ma un oggetto...

    Vabbè so che c'è un modo ma non riesco a trovarlo chiaramente in internet...
    @PostPersist ?

  2. #2
    Utente bannato
    Registrato dal
    May 2001
    Messaggi
    460
    vABBè HO RISOLTO DA SOLO.


    Codice PHP:
    @Id 
        
    @GeneratedValue(strategy=GenerationType.IDENTITY
    Sul ID tabella1



    e poi prima persisto la riga della tabella1

    Codice PHP:
    Oggettodiclassetabella2.setID(Oggettodiclassetabella1); 
    Codice PHP:
      mm.persist(Oggettodiclassetabella1);
             
    mm.persist(Oggettodiclassetabella2); 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.