为什么POJO Java类必须实现Serializable
接口?如果我不实施Serializable
会怎样?
@Entity
@Table(name="Customer")
public class Customer implements Serializable {
private static final long serialVersionUID = -5294188737237640015L;
/**
* Holds Customer id of the customer
*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "cust_id")
private int Custid;
/** Holds first Name of the customer*/
@Column(name = "first_name")
private String firstName;
/** Holds last Name of the customer */
@Column(name = "last_name")
private String lastName;
/** Holds Customer mobile number of customer*/
@Column(name = "cust_mobile")
private long MobileNo;
/**Holds customer address of customer*/
@Column(name = "cust_address")
答案 0 :(得分:8)
首先,这不再是普通的旧Java对象,因为它有注释。
但保留在您的前提下,如果要在分布式系统和系统中使用,那么可以在POJO中使用Serializable,它们使用缓存和刷新文件并回读。
大多数JPA实现都以分布式方式运行并使用缓存,因此需要此POJO来实现Serializable。
有关详细信息,请阅读此discussion
答案 1 :(得分:0)
术语“POJO”是为轻量级和重量级EJB概念分离而发明的。
POJO不要求你实施任何东西。
它用于不能实现重量级EJB接口的对象。
随着JEE5的引入以及随后使用轻量级注释来定义EJB,该术语已经过时了。
从我的到期,我会说这个词现在有毒,不应再使用了。 如今,它只是误解和不必要讨论的常见根源。
顺便说一句:我相信你指的是“JavaBeans”。