Domanda

Ho ereditato un progetto Websphere Portal che utilizza Hibernate 3.0 per connettersi a un database di SQL Server.

Ci sono circa 130 classi della tabella Hibernate in questo progetto. Tutti implementano Serializable. Nessuno di loro dichiara un campo serialVersionUID, quindi l'IDE Eclipse mostra un monito per tutti di queste classi.

C'è bisogno reale per queste classi di implementare Serializable?
Se è così, c'è qualche strumento per aggiungere un campo serialVersionUID generato a un gran numero di classi in una sola volta (solo per fare gli avvertimenti andare via)?

È stato utile?

Soluzione

  

C'è bisogno reale per queste classi di implementare Serializable?

La specifica JPA (JSR 220) riassume abbastanza bene (lo stesso vale per Hibernate):

  

2.1 Requisiti per la classe di entità

     

(...)

     

Se un'istanza entità debba essere passati per valore come oggetto distaccato (ad esempio, attraverso un'interfaccia remota), la classe entità deve implementare l'interfaccia Serializable.

Quindi, a rigor di termini, questo non è un requisito a meno che non è necessario entità staccate da inviare attraverso la rete ad un altro livello, da migrare su un altro nodo del cluster, per essere memorizzati nella sessione HTTP, ecc

  

Se è così, c'è qualche strumento per aggiungere un campo serialVersionUID generato a un gran numero di classi in una sola volta

Credo che si potrebbe in batch questo con la versione seriale (ANT) Attività .

Altri suggerimenti

Hibernate non richiede serializzabile a tutti.

di Eclipse " Clean Up " comando può fare quello. Tuttavia, lo fa anche molto di più in modo da testarlo e affinare le impostazioni di pulizia e di formato prima di usarlo su un intero pacchetto.

Non ho dimestichezza con uno strumento che avrebbe farlo automaticamente per un gruppo di classi, anche se si potrebbe scrivere uno script.

Se si fa meccanicamente con Eclipse, non dovrebbe prendere più di 4-5 secondi per classe che potrebbe essere ancora più veloce di uno script.

  

Se è così, c'è qualche strumento per aggiungere un campo serialVersionUID generato a un gran numero di classi in una sola volta (solo per fare gli avvertimenti andare via)?

È possibile disattivare questo avviso all'interno delle impostazioni del compilatore per Eclipse -. Sia per il progetto o il vostro spazio di lavoro nel suo complesso

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top