Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.hibernate.type.SerializationException:尝试将数据保存到postgresl表时引发无法序列化_Java_Spring_Hibernate_Jpa_Serialization - Fatal编程技术网

Java org.hibernate.type.SerializationException:尝试将数据保存到postgresl表时引发无法序列化

Java org.hibernate.type.SerializationException:尝试将数据保存到postgresl表时引发无法序列化,java,spring,hibernate,jpa,serialization,Java,Spring,Hibernate,Jpa,Serialization,我在尝试将itemLocations字段保存到表中时遇到spring jpa异常。 包com.tgt.scmd.inbound.domain import java.io.Serializable; import java.sql.Timestamp; import java.util.Arrays; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Genera

我在尝试将itemLocations字段保存到表中时遇到spring jpa异常。 包com.tgt.scmd.inbound.domain

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Arrays;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import com.tgt.scmd.inbound.utils.RequestStatus;
@Entity
@Table(name = "breakpack_authorization_details")
public class SupplyChainBreakPackAuth implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = -5688043643278441710L;

    @Id
    @SequenceGenerator(name = "break_pack_auth_seq", sequenceName = "break_pack_auth_seq", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "break_pack_auth_seq")
    private int id;

    private ItemLocations[] itemLocations;

    @Column(updatable = false)
    @CreationTimestamp
    private Timestamp requestedDate;

    private String requestReason;

    private String requestor;

    private String department;

    private String itemStatus;

    private String reasonForFailure;

    private String approversReason;

    private String approver;

    private String assortmentAnalysisDeptId;

    private String assortmentAnalysisDescription;

    private RequestStatus requestStatus;

    @UpdateTimestamp
    private Timestamp modifiedDate;


    public Integer getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    public ItemLocations[] getItemLocations() {
        return itemLocations;
    }
    public void setItemLocations(ItemLocations[] itemLocations) {
        this.itemLocations = itemLocations;
    }
    public String getApprover() {
        return approver;
    }

    public void setApprover(String approver) {
        this.approver = approver;
    }

    public RequestStatus getRequestStatus() {
        return requestStatus;
    }

    public void setRequestStatus(RequestStatus requestStatus) {
        this.requestStatus = requestStatus;
    }

    public Timestamp getRequestedDate() {
        return requestedDate;
    }

    public void setRequestedDate(Timestamp requestedDate) {
        this.requestedDate = requestedDate;
    }

    public String getRequestReason() {
        return requestReason;
    }

    public void setRequestReason(String requestReason) {
        this.requestReason = requestReason;
    }

    public String getRequestor() {
        return requestor;
    }

    public void setRequestor(String requestor) {
        this.requestor = requestor;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getItemStatus() {
        return itemStatus;
    }

    public void setItemStatus(String itemStatus) {
        this.itemStatus = itemStatus;
    }

    public String getReasonForFailure() {
        return reasonForFailure;
    }

    public void setReasonForFailure(String reasonForFailure) {
        this.reasonForFailure = reasonForFailure;
    }

    public String getApproversReason() {
        return approversReason;
    }

    public void setApproversReason(String approversReason) {
        this.approversReason = approversReason;
    }

    public String getAssortmentAnalysisDeptId() {
        return assortmentAnalysisDeptId;
    }

    public void setAssortmentAnalysisDeptId(String assortmentAnalysisDeptId) {
        this.assortmentAnalysisDeptId = assortmentAnalysisDeptId;
    }

    public String getAssortmentAnalysisDescription() {
        return assortmentAnalysisDescription;
    }

    public void setAssortmentAnalysisDescription(
            String assortmentAnalysisDescription) {
        this.assortmentAnalysisDescription = assortmentAnalysisDescription;
    }

    public Timestamp getModifiedDate() {
        return modifiedDate;
    }
    public void setModifiedDate(Timestamp modifiedDate) {
        this.modifiedDate = modifiedDate;
    }


    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result
                + ((approver == null) ? 0 : approver.hashCode());
        result = prime * result
                + ((approversReason == null) ? 0 : approversReason.hashCode());
        result = prime
                * result
                + ((assortmentAnalysisDeptId == null) ? 0
                        : assortmentAnalysisDeptId.hashCode());
        result = prime
                * result
                + ((assortmentAnalysisDescription == null) ? 0
                        : assortmentAnalysisDescription.hashCode());
        result = prime * result
                + ((department == null) ? 0 : department.hashCode());
        result = prime * result + id;
        result = prime * result
                + ((itemLocations == null) ? 0 : itemLocations.hashCode());
        result = prime * result
                + ((itemStatus == null) ? 0 : itemStatus.hashCode());
        result = prime * result
                + ((modifiedDate == null) ? 0 : modifiedDate.hashCode());
        result = prime
                * result
                + ((reasonForFailure == null) ? 0 : reasonForFailure.hashCode());
        result = prime * result
                + ((requestReason == null) ? 0 : requestReason.hashCode());
        result = prime * result
                + ((requestStatus == null) ? 0 : requestStatus.hashCode());
        result = prime * result
                + ((requestedDate == null) ? 0 : requestedDate.hashCode());
        result = prime * result
                + ((requestor == null) ? 0 : requestor.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        SupplyChainBreakPackAuth other = (SupplyChainBreakPackAuth) obj;
        if (approver == null) {
            if (other.approver != null)
                return false;
        } else if (!approver.equals(other.approver))
            return false;
        if (approversReason == null) {
            if (other.approversReason != null)
                return false;
        } else if (!approversReason.equals(other.approversReason))
            return false;
        if (assortmentAnalysisDeptId == null) {
            if (other.assortmentAnalysisDeptId != null)
                return false;
        } else if (!assortmentAnalysisDeptId
                .equals(other.assortmentAnalysisDeptId))
            return false;
        if (assortmentAnalysisDescription == null) {
            if (other.assortmentAnalysisDescription != null)
                return false;
        } else if (!assortmentAnalysisDescription
                .equals(other.assortmentAnalysisDescription))
            return false;
        if (department == null) {
            if (other.department != null)
                return false;
        } else if (!department.equals(other.department))
            return false;
        if (id != other.id)
            return false;
        if (itemLocations == null) {
            if (other.itemLocations != null)
                return false;
        } else if (!itemLocations.equals(other.itemLocations))
            return false;
        if (itemStatus == null) {
            if (other.itemStatus != null)
                return false;
        } else if (!itemStatus.equals(other.itemStatus))
            return false;
        if (modifiedDate == null) {
            if (other.modifiedDate != null)
                return false;
        } else if (!modifiedDate.equals(other.modifiedDate))
            return false;
        if (reasonForFailure == null) {
            if (other.reasonForFailure != null)
                return false;
        } else if (!reasonForFailure.equals(other.reasonForFailure))
            return false;
        if (requestReason == null) {
            if (other.requestReason != null)
                return false;
        } else if (!requestReason.equals(other.requestReason))
            return false;
        if (requestStatus != other.requestStatus)
            return false;
        if (requestedDate == null) {
            if (other.requestedDate != null)
                return false;
        } else if (!requestedDate.equals(other.requestedDate))
            return false;
        if (requestor == null) {
            if (other.requestor != null)
                return false;
        } else if (!requestor.equals(other.requestor))
            return false;
        return true;
    }


    public static class ItemLocations{
        private String tcin;

        private Integer[] locationIds;

        public String getTcin() {
            return tcin;
        }

        public void setTcin(String tcin) {
            this.tcin = tcin;
        }

        public Integer[] getLocationIds() {
            return locationIds;
        }

        public void setLocationIds(Integer[] locationIds) {
            this.locationIds = locationIds;
        }

        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + Arrays.hashCode(locationIds);
            result = prime * result + ((tcin == null) ? 0 : tcin.hashCode());
            return result;
        }

        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            ItemLocations other = (ItemLocations) obj;
            if (!Arrays.equals(locationIds, other.locationIds))
                return false;
            if (tcin == null) {
                if (other.tcin != null)
                    return false;
            } else if (!tcin.equals(other.tcin))
                return false;
            return true;
        }
    }

}
当我尝试在同一个服务器上执行hibernate保存操作时,它会引发not serializable异常。具体的例外情况如下:

原因:org.hibernate.type.SerializationException:无法序列化 在org.hibernate.internal.util.SerializationHelper.serialize(SerializationHelper.java:119)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.internal.util.SerializationHelper.serialize(SerializationHelper.java:144)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.internal.util.SerializationHelper.clone(SerializationHelper.java:75)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.type.descriptor.java.SerializableTypeScriptor$SerializableMutabilityPlan.deepCopyNotNull(SerializableTypeScriptor.java:43)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.type.descriptor.java.SerializableTypeScriptor$SerializableMutabilityPlan.deepCopyNotNull(SerializableTypeScriptor.java:30)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.type.descriptor.java.MutableMutabilityPlan.deepCopy(MutableMutabilityPlan.java:35)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.type.AbstractStandardBasicType.deepCopy(AbstractStandardBasicType.java:283)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.type.AbstractStandardBasicType.deepCopy(AbstractStandardBasicType.java:279)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.type.TypeHelper.deepCopy(TypeHelper.java:51)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:264)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:178)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.event.internal.AbstractSaveEventListener.SaveWithGenerateId(AbstractSaveEventListener.java:121)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId(JpaPersistEventListener.java:67)~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:189)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:132)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:58)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:775)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.internal.SessionImpl.persist(SessionImpl.java:748)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.internal.SessionImpl.persist(SessionImpl.java:753)~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] 在org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1146)~[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final] 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0_121] 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)~[na:1.8.0121] 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:1.8.0121] 在java.lang.reflect.Method.invoke(Method.java:498)~[na:1.8.0_121] 在org.springframework.orm.jpa.ExtendedEntityManagerCreator$extendedentitymanageringhandler.invoke(ExtendedEntityManagerCreator.java:347)~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] 在com.sun.proxy.$Proxy101.persist(未知源)~[na:na] 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0_121] 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)~[na:1.8.0121] 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:1.8.0121] 在java.lang.reflect.Method.invoke(Method.java:498)~[na:1.8.0_121] 在org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:298)~[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] 在com.sun.proxy.$Proxy101.persist(未知源)~[na:na] 在org.springframework.data.jpa.repository.support.simplejperparepository.save(SimpleJpaRepository.java:508)~[spring-data-jpa-1.11.1.RELEASE.jar:na] 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0_121] 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)~[na:1.8.0121] 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:1.8.0121] 在java.lang.reflect.Method.invoke(Method.java:498)~[na:1.8.0_121] 在org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:504)~[spring-data-commons-1.13.1.RELEASE.jar:na] 在org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:489)~[spring-data-commons-1.13.1.RELEASE.jar:na] 在org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:461)~[spring-data-commons-1.13.1.RELEASE.jar:na] 在org.springfram