组件类(嵌入式对象 )@Embeddable 注解 和Serializable接口
来源:互联网 发布:淘宝网鱿鱼丝 编辑:程序博客网 时间:2024/06/05 20:52
@embeddable是注释Java类的,表示类是嵌入类。通过此注释可以在你的Entity中使用一般的java对象,此对象需要用@Embeddable标注。
@embeddable是注释Java类的,表示类是嵌入类。
@embedded是注释属性的,表示该属性的类是嵌入类。
注意:
1.必须要实现serializable接口
2.需要有无参的构造函数
3.@Embeddable注释,表示此类可以被插入某个entity中
例子:
/** * Entity - 安全密钥 */@Embeddablepublic class SafeKey implements Serializable{ /** 密钥 */ private String value; /** 到期时间 */ private Date expire; /** * 获取密钥 * * @return 密钥 */ @Column(name = "safe_key_value") public String getValue() { return value; } /** * 设置密钥 * * @param value 密钥 */ public void setValue(String value) { this.value = value; } /** * 获取到期时间 * * @return 到期时间 */ @Column(name = "safe_key_expire") public Date getExpire() { return expire; } /** * 设置到期时间 * * @param expire 到期时间 */ public void setExpire(Date expire) { this.expire = expire; } /** * 判断是否已过期 * * @return 是否已过期 */ @Transient public boolean hasExpired() { return getExpire() != null && new Date().after(getExpire()); }}
@Entity@Table(name = "XX_table")@SequenceGenerator(name = "sequenceGenerator", sequenceName = "t_XX_sequence")public class Member extends BaseEntity{ //其他属性略 /** 安全密匙 */ private SafeKey safeKey; /** * 获取安全密匙 */ @Embedded public SafeKey getSafeKey() { return safeKey; } /** * 设置安全密匙 */ public void setSafeKey(SafeKey safeKey) { this.safeKey = safeKey; }}
Hibernate POJO为什么要实现Serializable接口:
转自:http://blog.csdn.net/longeremmy/article/details/7456547
实现 java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化。序列化类的所有子类本身都是可序列化的。这个序列化接口没有任何方法和域,仅用于标识序列化的语意。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象。这种情况下就要用到对象的序列化。
只有序列化的对象才可以存储在存储设备上。为了对象的序列化而需要继承的接口也只是一个象征性的接口而已,也就是说继承这个接口说明这个对象可以被序列化了,没有其他的目的。之所以需要对象序列化,是因为有时候对象需要在网络上传输,传输的时候需要这种序列化处理,从服务器硬盘上把序列化的对象取出,然后通过网络传到客户端,再由客户端把序列化的对象读入内存,执行相应的处理。
对象序列化是java的一个特征,通过该特征可以将对象写作一组字节码,当在其他位置读到这些字节码时,可以依此创建一个新的对象,而且新对象的状态与原对象完全相同。为了实现对象序列化,要求必须能够访问类的私有变量,从而保证对象状态能够正确的得以保存和恢复。相应的,对象序列化API能够在对象重建时,将这些值还原给私有的数据成员。这是对java语言访问权限的挑战。通常用在服务器客户端的对象交换上面,另外就是在本机的存储。
对象序列化的最主要的用处就是在传递,和保存对象(object)的时候,保证对象的完整性和可传递性。譬如通过网络传输,或者把一个对象保存成一个文件的时候,要实现序列化接口 。
- 组件类(嵌入式对象 )@Embeddable 注解 和Serializable接口
- @Embeddable注解Java类的作用
- JPA的Embeddable注解
- JPA的Embeddable注解
- Hibernate @Embeddable注解
- JPA的Embeddable注解
- Hibernate的@Embeddable注解
- Hibernate中@Embedded和@Embeddable注解的使用
- Hibernate中@Embedded和@Embeddable注解的使用
- Hibernate中@Embedded和@Embeddable注解的使用
- java对象实现Serializable接口(整理)
- IO流之对象序列化(Serializable接口和Externalizable接口)
- 对象的序列化实现Serializable 接口和Externalizable接口
- Intent传递对象实现Parcelable接口和Serializable接口
- hibernate-jpa中@Embeddable注解的类查询
- bundle传递对象与Serializable、Parcelable接口理解和思考
- @Embedded和@Embeddable
- Serializable对象序列化接口
- wxhl ios bj 49 张浩 学习心得连载 第一章
- 饿汉与懒汉
- Linux写时拷贝技术(copy-on-write)
- 三次握手和四次挥手的小结
- ubuntu 无线 经常掉线
- 组件类(嵌入式对象 )@Embeddable 注解 和Serializable接口
- 我的六年程序员职业生涯总结(一)
- 个人关于程序和系统方面知识的疑问--------:exe 、dll 、库、api 该咋理解???
- Android Common 整理
- Hibernate(十)继承结构映射
- iOS 一些面试问题(一)
- Android JSON解析库的使用
- 测试hadoop-1.2.1是否成功安装和配置
- mybatis使用初步问题解决方案