使用JPA从DB读取对象时无法控制readObject

时间:2015-12-11 10:39:50

标签: java jpa serialization

@Entity
@Table(name = "Student")
public class Student implements serializable{

@Column(name="sid") 
private int sid;
@Column(name="name") 
private String name;
@Column(name="addressXml") 
private String addressXml;

@Transient
private Address addressObj;


}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        ---Not getting control here
        in.defaultReadObject();

        addressXml =(String)in.readObject();
        addressObj =(Address) xstream.fromXML(addressXml);

}

我遇到以下情况:在执行getResultList时,我需要在readObject中进行控制,以便我可以将addressXml转换为addressObj并设置瞬态变量。

List<Student> list = query.getResultList();

但我无法控制readyObject

注意:Student对象已在db中保留,我使用Hibernate JPA实现来检索Student个对象。

你能帮助我理解我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

从数据库中拉回对象时,没有使用Java序列化过程,除非您将实体存储为序列化。如果你只想在从数据库中撤回时获取FIELD的句柄,那么你可以使用JPA PostLoad事件监听器。