为什么复合ID类必须实现Serializable?

如果我制作了一个不实现Serializable的Composite-id类,例如:

@Entity

@Table(name = "board")

public class Board {

@Id

@Column(name = "keyword_news_id")

private int id;

@Id

@Column(name = "board_no")

private int boardNo;

....

发生错误,例如:

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)

hibernate实体类不必是可序列化的。那么,为什么Composite-

id类必须实现Serializable?我读了这个主题,但是没有给我足够的信息。

回答:

会话对象需要可序列化,因此它引用的所有对象也必须可序列化。id用作索引会话中已加载对象的键。如果是CompositeId,则将类本身用作id。

以上是 为什么复合ID类必须实现Serializable? 的全部内容, 来源链接: utcz.com/qa/407538.html

回到顶部