java - sirve - ¿Por qué la clase de identificación compuesta debe implementar Serializable?
serialversionuid que es (1)
El objeto de sesión debe ser serializable, por lo tanto, todos los objetos a los que hace referencia también deben ser serializables. La identificación se usa como una clave para indexar objetos cargados en la sesión. En el caso de CompositeId s, la clase en sí misma se usa como id.
Si hago una clase de identificación compuesta que no implementa Serializable como:
@Entity
@Table(name = "board")
public class Board {
@Id
@Column(name = "keyword_news_id")
private int id;
@Id
@Column(name = "board_no")
private int boardNo;
....
Los errores ocurren como:
Caused by: org.hibernate.MappingException: composite-id class must implement Serializable: com.estinternet.news.domain.IssueNewsBoard
at org.hibernate.mapping.RootClass.checkCompositeIdentifier(RootClass.java:263)
at org.hibernate.mapping.RootClass.validate(RootClass.java:244)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1362)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1865)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:860)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:779)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
Las clases de entidades de Hibernate no necesitan ser serializables . Entonces, ¿por qué la clase composite-id debe implementar Serializable? Leí este hilo , pero no me dio suficiente información.