on 05-25-2007 8:34 AM
I've got Entity EJB 3.0 :
package ru.technoserv.isat.ejb.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Blob;
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Basic;
@Entity
@Table(name="UTT_APPLICATIONS")
public class UttApplications implements Serializable {
@EmbeddedId
private UttApplications.PK pk;
private String info;
@Column(name="VER_RELEASE")
private BigDecimal verRelease;
@Column(name="VER_BUILD")
private BigDecimal verBuild;
@Column(name="VER_MAJOR")
private BigDecimal verMajor;
@Column(name="FILE_NAME")
private String fileName;
@Column(name="VER_MINOR")
private BigDecimal verMinor;
@Column(name="BODY", updatable = false)
@Lob
@Basic
private Blob bodyX;
@Column(name="R1")
private BigDecimal r1;
@Column(name="DATESYS")
private Date datesys;
@Column(name="R2")
private BigDecimal r2;
private static final long serialVersionUID = 1L;
public UttApplications() {
super();
}
public UttApplications.PK getPk() {
return this.pk;
}
public void setPk(UttApplications.PK pk) {
this.pk = pk;
}
public String getInfo() {
return this.info;
}
public void setInfo(String info) {
this.info = info;
}
public BigDecimal getR1() {
return this.r1;
}
public void setR1(BigDecimal r1) {
this.r1 = r1;
}
public BigDecimal getVerRelease() {
return this.verRelease;
}
public void setVerRelease(BigDecimal verRelease) {
this.verRelease = verRelease;
}
public BigDecimal getVerBuild() {
return this.verBuild;
}
public void setVerBuild(BigDecimal verBuild) {
this.verBuild = verBuild;
}
public BigDecimal getVerMajor() {
return this.verMajor;
}
public void setVerMajor(BigDecimal verMajor) {
this.verMajor = verMajor;
}
public Blob getBody() {
return this.bodyX;
}
public void setBody(Blob bodyX) {
this.bodyX = bodyX;
}
public BigDecimal getR2() {
return this.r2;
}
public void setR2(BigDecimal r2) {
this.r2 = r2;
}
public String getFileName() {
return this.fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public BigDecimal getVerMinor() {
return this.verMinor;
}
public void setVerMinor(BigDecimal verMinor) {
this.verMinor = verMinor;
}
public Date getDatesys() {
return this.datesys;
}
public void setDatesys(Date datesys) {
this.datesys = datesys;
}
@Embeddable
public static class PK implements Serializable {
private BigDecimal verRelease;
private BigDecimal verMajor;
private BigDecimal verMinor;
private BigDecimal verBuild;
private String info;
private static final long serialVersionUID = 1L;
public PK() {
super();
}
public BigDecimal getVerRelease() {
return this.verRelease;
}
public void setVerRelease(BigDecimal verRelease) {
this.verRelease = verRelease;
}
public BigDecimal getVerMajor() {
return this.verMajor;
}
public void setVerMajor(BigDecimal verMajor) {
this.verMajor = verMajor;
}
public BigDecimal getVerMinor() {
return this.verMinor;
}
public void setVerMinor(BigDecimal verMinor) {
this.verMinor = verMinor;
}
public BigDecimal getVerBuild() {
return this.verBuild;
}
public void setVerBuild(BigDecimal verBuild) {
this.verBuild = verBuild;
}
public String getInfo() {
return this.info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if ( ! (o instanceof PK)) {
return false;
}
PK other = (PK) o;
return this.verRelease.equals(other.verRelease)
&& this.verMajor.equals(other.verMajor)
&& this.verMinor.equals(other.verMinor)
&& this.verBuild.equals(other.verBuild)
&& this.info.equals(other.info);
}
@Override
public int hashCode() {
return this.verRelease.hashCode()
^ this.verMajor.hashCode()
^ this.verMinor.hashCode()
^ this.verBuild.hashCode()
^ this.info.hashCode();
}
}
}
5 times that code was deployed within EAR.
Today that code raising exception while deploying!
There are some deploy log:
25.05.2007 11:29:11 /userOut/daView_category (eclipse.UserOutLocation) [Thread[Deploy Thread,6,main]] ERROR: Deploy Exception.An error occurred while deploying the deployment item 'sap.com_ISATMW'.; nested exception is:
java.rmi.RemoteException: class com.sap.engine.services.dc.gd.DeliveryException: An error occurred during deployment of sdu id: sap.com_ISATMW
sdu file path: C:SAPJP1JC00j2eeclusterserver0temptc~bl~deploy_controllerarchives81ISATMW.ear
version status: HIGHER
deployment status: Admitted
description:
1. Error:
Cannot update application sap.com/ISATMW. Reason: The application sap.com/ISATMW will not be update, because its validation failed. Reason:
ERRORS:
ORPersistence Model Builder: Exception occurred: com.sap.engine.services.orpersistence.model.ormappingmodel.ORMException: Field 'java.sql.Blob bodyX' of class 'ru.technoserv.isat.ejb.entity.UttApplications is not persistent field according to spec at com.sap.engine.services.orpersistence.model.ormappingmodel.impl.ORMappingModelCreatorImpl.checkIfPersistent(ORMappingModelCreatorImpl.java:1973), file: ISATMWEJB.jar, column 0, line 0, severity: error
..
Reason: The application sap.com/ISATMW will not be update, because its validation failed. Reason:
Any comment's about exception?
And i wounder to know what in ORMappingModelCreatorImpl.java line 1973.
P.S. Help me!
I look at deployment descriptor of JDBC datasource - there are was open_sql option.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
According to the JPA specification, Blob is not a supported data type for persistent fields. See section 2.1.1:
<i>The persistent fields or properties of an entity may be of the following types: Java primitive types;
java.lang.String; other Java serializable types (including wrappers of the primitive types,
java.math.BigInteger, java.math.BigDecimal, java.util.Date,
java.util.Calendar[7], java.sql.Date, java.sql.Time, java.sql.Timestamp,
user-defined serializable types, byte[], Byte[], char[], and Character[]); enums; entity
types and/or collections of entity types; and embeddable classes (see section 2.1.5).</i>
Best regards,
Sabine
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
With Blob all clear. But I again I have deployment exception!
Here my code:
package ru.technoserv.isat.ejb.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="UTT_TDOK")
public class UttTdok implements Serializable {
@EmbeddedId
private UttTdok.PK pk;
@Column(name="K_UNDERLOAD")
private BigDecimal kUnderload;
@Column(name="CEX_ID")
private BigDecimal cexId;
@Column(name="BRIG_ID")
private BigDecimal brigId;
private BigDecimal f1n;
private String way;
private String subzak;
private String poputno;
@Column(name="VID_VAHT")
private String vidVaht;
@Column(name="KM_CITY")
private BigDecimal kmCity;
private BigDecimal f4n;
@Column(name="ZAKAZ_NUM")
private String zakazNum;
@Column(name="VID_RABOT")
private String vidRabot;
private BigDecimal skvajina;
@Column(name="DEPT_REESTR")
private BigDecimal deptReestr;
@Column(name="TONN_PRIC")
private BigDecimal tonnPric;
@Column(name="KM_3")
private BigDecimal km3;
@Column(name="KM_GRUZ")
private BigDecimal kmGruz;
private BigDecimal mh;
private BigDecimal cubature;
@Column(name="SPEC_EQ")
private BigDecimal specEq;
@Column(name="KM_2")
private BigDecimal km2;
@Column(name="KM_OFFROAD")
private BigDecimal kmOffroad;
private BigDecimal ezdok;
@Column(name="DATE_RENDER")
private Date dateRender;
@Column(name="KM_1")
private BigDecimal km1;
@Column(name="DATE_IN")
private Date dateIn;
private BigDecimal f3n;
private BigDecimal tonn;
private BigDecimal r2;
@Column(name="KOL_HOUR")
private BigDecimal kolHour;
@Column(name="HEAD_EQ")
private BigDecimal headEq;
@Column(name="DATE_OUT")
private Date dateOut;
private String prominka;
@Column(name="DATE_END")
private Date dateEnd;
@Column(name="DATE_SET")
private Date dateSet;
private String f1c;
@Column(name="P_ZAGRUZ")
private BigDecimal pZagruz;
private BigDecimal r1;
private String f2c;
private BigDecimal f2n;
private BigDecimal dohod;
private BigDecimal km;
private BigDecimal mvz;
@Column(name="KOEF_CUBATURA")
private BigDecimal koefCubatura;
@ManyToOne
private UttBuildobj buildobj;
@ManyToOne
private UttObjgis carier;
@ManyToOne
@JoinColumn(name="BUILDOBJ_FROM")
private UttBuildobj buildobjFrom;
@ManyToOne
@JoinColumn(name="KUST")
private UttObjgis kust;
@ManyToOne
@JoinColumn(name="deptfix_id", referencedColumnName = "id")
private UttDeptfix deptfix;
// @Column(name="DEPTFIX_ID")
// private BigDecimal deptfixId;
@ManyToOne
private UtttypeObjgisOilfield oilfield;
@ManyToOne
private UtttypeJob job;
@ManyToOne
private UtttypeBrutto brutto;
@OneToMany(mappedBy="uttTdok")
private Set<UttTdokDop> uttTdokDopCollection;
@OneToMany(mappedBy="uttTdok")
private Set<UttTdokProp> uttTdokPropCollection;
private static final long serialVersionUID = 1L;
public UttTdok() {
super();
}
public UttTdok.PK getPk() {
return this.pk;
}
public void setPk(UttTdok.PK pk) {
this.pk = pk;
}
public BigDecimal getKUnderload() {
return this.kUnderload;
}
public void setKUnderload(BigDecimal kUnderload) {
this.kUnderload = kUnderload;
}
public BigDecimal getCexId() {
return this.cexId;
}
public void setCexId(BigDecimal cexId) {
this.cexId = cexId;
}
public BigDecimal getBrigId() {
return this.brigId;
}
public void setBrigId(BigDecimal brigId) {
this.brigId = brigId;
}
public BigDecimal getF1n() {
return this.f1n;
}
public void setF1n(BigDecimal f1n) {
this.f1n = f1n;
}
public String getWay() {
return this.way;
}
public void setWay(String way) {
this.way = way;
}
public String getSubzak() {
return this.subzak;
}
public void setSubzak(String subzak) {
this.subzak = subzak;
}
public String getPoputno() {
return this.poputno;
}
public void setPoputno(String poputno) {
this.poputno = poputno;
}
public String getVidVaht() {
return this.vidVaht;
}
public void setVidVaht(String vidVaht) {
this.vidVaht = vidVaht;
}
public BigDecimal getKmCity() {
return this.kmCity;
}
public void setKmCity(BigDecimal kmCity) {
this.kmCity = kmCity;
}
public BigDecimal getF4n() {
return this.f4n;
}
public void setF4n(BigDecimal f4n) {
this.f4n = f4n;
}
public String getZakazNum() {
return this.zakazNum;
}
public void setZakazNum(String zakazNum) {
this.zakazNum = zakazNum;
}
public String getVidRabot() {
return this.vidRabot;
}
public void setVidRabot(String vidRabot) {
this.vidRabot = vidRabot;
}
public BigDecimal getSkvajina() {
return this.skvajina;
}
public void setSkvajina(BigDecimal skvajina) {
this.skvajina = skvajina;
}
public BigDecimal getDeptReestr() {
return this.deptReestr;
}
public void setDeptReestr(BigDecimal deptReestr) {
this.deptReestr = deptReestr;
}
public BigDecimal getTonnPric() {
return this.tonnPric;
}
public void setTonnPric(BigDecimal tonnPric) {
this.tonnPric = tonnPric;
}
public BigDecimal getKm3() {
return this.km3;
}
public void setKm3(BigDecimal km3) {
this.km3 = km3;
}
public BigDecimal getKmGruz() {
return this.kmGruz;
}
public void setKmGruz(BigDecimal kmGruz) {
this.kmGruz = kmGruz;
}
public BigDecimal getMh() {
return this.mh;
}
public void setMh(BigDecimal mh) {
this.mh = mh;
}
public BigDecimal getCubature() {
return this.cubature;
}
public void setCubature(BigDecimal cubature) {
this.cubature = cubature;
}
public BigDecimal getSpecEq() {
return this.specEq;
}
public void setSpecEq(BigDecimal specEq) {
this.specEq = specEq;
}
public BigDecimal getKm2() {
return this.km2;
}
public void setKm2(BigDecimal km2) {
this.km2 = km2;
}
public BigDecimal getKmOffroad() {
return this.kmOffroad;
}
public void setKmOffroad(BigDecimal kmOffroad) {
this.kmOffroad = kmOffroad;
}
public BigDecimal getEzdok() {
return this.ezdok;
}
public void setEzdok(BigDecimal ezdok) {
this.ezdok = ezdok;
}
public Date getDateRender() {
return this.dateRender;
}
public void setDateRender(Date dateRender) {
this.dateRender = dateRender;
}
public BigDecimal getKm1() {
return this.km1;
}
public void setKm1(BigDecimal km1) {
this.km1 = km1;
}
public Date getDateIn() {
return this.dateIn;
}
public void setDateIn(Date dateIn) {
this.dateIn = dateIn;
}
public BigDecimal getF3n() {
return this.f3n;
}
public void setF3n(BigDecimal f3n) {
this.f3n = f3n;
}
public BigDecimal getTonn() {
return this.tonn;
}
public void setTonn(BigDecimal tonn) {
this.tonn = tonn;
}
public BigDecimal getR2() {
return this.r2;
}
public void setR2(BigDecimal r2) {
this.r2 = r2;
}
public BigDecimal getKolHour() {
return this.kolHour;
}
public void setKolHour(BigDecimal kolHour) {
this.kolHour = kolHour;
}
public BigDecimal getHeadEq() {
return this.headEq;
}
public void setHeadEq(BigDecimal headEq) {
this.headEq = headEq;
}
public Date getDateOut() {
return this.dateOut;
}
public void setDateOut(Date dateOut) {
this.dateOut = dateOut;
}
public String getProminka() {
return this.prominka;
}
public void setProminka(String prominka) {
this.prominka = prominka;
}
public Date getDateEnd() {
return this.dateEnd;
}
public void setDateEnd(Date dateEnd) {
this.dateEnd = dateEnd;
}
public Date getDateSet() {
return this.dateSet;
}
public void setDateSet(Date dateSet) {
this.dateSet = dateSet;
}
public String getF1c() {
return this.f1c;
}
public void setF1c(String f1c) {
this.f1c = f1c;
}
public BigDecimal getPZagruz() {
return this.pZagruz;
}
public void setPZagruz(BigDecimal pZagruz) {
this.pZagruz = pZagruz;
}
public BigDecimal getR1() {
return this.r1;
}
public void setR1(BigDecimal r1) {
this.r1 = r1;
}
public String getF2c() {
return this.f2c;
}
public void setF2c(String f2c) {
this.f2c = f2c;
}
public BigDecimal getF2n() {
return this.f2n;
}
public void setF2n(BigDecimal f2n) {
this.f2n = f2n;
}
public BigDecimal getDohod() {
return this.dohod;
}
public void setDohod(BigDecimal dohod) {
this.dohod = dohod;
}
public BigDecimal getKm() {
return this.km;
}
public void setKm(BigDecimal km) {
this.km = km;
}
public BigDecimal getMvz() {
return this.mvz;
}
public void setMvz(BigDecimal mvz) {
this.mvz = mvz;
}
public BigDecimal getKoefCubatura() {
return this.koefCubatura;
}
public void setKoefCubatura(BigDecimal koefCubatura) {
this.koefCubatura = koefCubatura;
}
public UttBuildobj getBuildobj() {
return this.buildobj;
}
public void setBuildobj(UttBuildobj buildobj) {
this.buildobj = buildobj;
}
public UttObjgis getCarier() {
return this.carier;
}
public void setCarier(UttObjgis carier) {
this.carier = carier;
}
public UttBuildobj getBuildobjFrom() {
return this.buildobjFrom;
}
public void setBuildobjFrom(UttBuildobj buildobjFrom) {
this.buildobjFrom = buildobjFrom;
}
public UttObjgis getKust() {
return this.kust;
}
public void setKust(UttObjgis kust) {
this.kust = kust;
}
public UttDeptfix getDeptfix() {
return this.deptfix;
}
public void setDeptfix(UttDeptfix deptfix) {
this.deptfix = deptfix;
}
public UtttypeObjgisOilfield getOilfield() {
return this.oilfield;
}
public void setOilfield(UtttypeObjgisOilfield oilfield) {
this.oilfield = oilfield;
}
public UtttypeJob getJob() {
return this.job;
}
public void setJob(UtttypeJob job) {
this.job = job;
}
public UtttypeBrutto getBrutto() {
return this.brutto;
}
public void setBrutto(UtttypeBrutto brutto) {
this.brutto = brutto;
}
public Set<UttTdokDop> getUttTdokDopCollection() {
return this.uttTdokDopCollection;
}
public void setUttTdokDopCollection(Set<UttTdokDop> uttTdokDopCollection) {
this.uttTdokDopCollection = uttTdokDopCollection;
}
public Set<UttTdokProp> getUttTdokPropCollection() {
return this.uttTdokPropCollection;
}
public void setUttTdokPropCollection(Set<UttTdokProp> uttTdokPropCollection) {
this.uttTdokPropCollection = uttTdokPropCollection;
}
@Embeddable
public static class PK implements Serializable {
private BigDecimal numorder;
private String typeTdok;
private BigDecimal deptfixId;
private BigDecimal nomer;
private static final long serialVersionUID = 1L;
public PK() {
super();
}
public BigDecimal getNumorder() {
return this.numorder;
}
public void setNumorder(BigDecimal numorder) {
this.numorder = numorder;
}
public String getTypeTdok() {
return this.typeTdok;
}
public void setTypeTdok(String typeTdok) {
this.typeTdok = typeTdok;
}
public BigDecimal getDeptfixId() {
return this.deptfixId;
}
public void setDeptfixId(BigDecimal deptfixId) {
this.deptfixId = deptfixId;
}
public BigDecimal getNomer() {
return this.nomer;
}
public void setNomer(BigDecimal nomer) {
this.nomer = nomer;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if ( ! (o instanceof PK)) {
return false;
}
PK other = (PK) o;
return this.numorder.equals(other.numorder)
&& this.typeTdok.equals(other.typeTdok)
&& this.deptfixId.equals(other.deptfixId)
&& this.nomer.equals(other.nomer);
}
@Override
public int hashCode() {
return this.numorder.hashCode()
^ this.typeTdok.hashCode()
^ this.deptfixId.hashCode()
^ this.nomer.hashCode();
}
}
}
and DEPLOYMENT EXCEPTION :
25.05.2007 12:00:23 /userOut/daView_category (eclipse.UserOutLocation) [Thread[Deploy Thread,6,main]] ERROR: Deploy Exception.An error occurred while deploying the deployment item 'sap.com_ISATMW'.; nested exception is:
java.rmi.RemoteException: class com.sap.engine.services.dc.gd.DeliveryException: An error occurred during deployment of sdu id: sap.com_ISATMW
sdu file path: C:SAPJP1JC00j2eeclusterserver0temptc~bl~deploy_controllerarchives82ISATMW.ear
version status: HIGHER
deployment status: Admitted
description:
1. Error:
Cannot update application sap.com/ISATMW. Reason: The application sap.com/ISATMW will not be update, because its validation failed. Reason:
ERRORS:
ORPersistence Model Builder: Exception occurred: com.sap.engine.services.orpersistence.model.ormappingmodel.ORMException: Column with name 'DEPTFIX_ID' not found in table 'UTT_TDOK' of persistent class 'ru.technoserv.isat.ejb.entity.UttTdok at com.sap.engine.services.orpersistence.model.ormappingmodel.impl.ORMUtils.getColumnByName(ORMUtils.java:1259), file: ISATMWEJB.jar, column 0, line 0, severity: error
..
Reason: The application sap.com/ISATMW will not be update, because its validation failed.
Here i show DESC command output from SQL*Plus console:
SQL> desc UTT_TDOK
Имя Пусто? Тип
-
-
-
<b>DEPTFIX_ID NOT NULL NUMBER</b>
NOMER NOT NULL NUMBER
TYPE_TDOK NOT NULL CHAR(1)
NUMORDER NOT NULL NUMBER
CEX_ID NUMBER
BRIG_ID NUMBER
KOL_HOUR NOT NULL NUMBER
EZDOK NOT NULL NUMBER
WAY NOT NULL CHAR(1)
JOB_ID NUMBER
BUILDOBJ_ID NUMBER
PROMINKA CHAR(1)
K_UNDERLOAD NOT NULL NUMBER
DATE_RENDER DATE
MVZ NUMBER
TONN_PRIC NUMBER
HEAD_EQ NUMBER
BRUTTO_ID NUMBER
TONN NUMBER
CUBATURE NUMBER
MH NUMBER
KM NUMBER
KM_GRUZ NUMBER
KM_1 NUMBER
KM_2 NUMBER
KM_3 NUMBER
KM_CITY NUMBER
SPEC_EQ NUMBER
F1C CHAR(1)
F2C CHAR(1)
F1N NUMBER
F2N NUMBER
F3N NUMBER
F4N NUMBER
KM_OFFROAD NUMBER
CARIER_ID NUMBER
DOHOD NUMBER
P_ZAGRUZ NUMBER
DATE_IN DATE
DATE_OUT DATE
DEPT_REESTR NUMBER
DATE_SET DATE
DATE_END DATE
BUILDOBJ_FROM NUMBER
SUBZAK CHAR(1)
OILFIELD_ID NUMBER
KUST NUMBER
SKVAJINA NUMBER
KOEF_CUBATURA NUMBER
VID_RABOT VARCHAR2(2)
R1 NUMBER
R2 NUMBER
POPUTNO CHAR(1)
ZAKAZ_NUM VARCHAR2(12)
VID_VAHT VARCHAR2(2)
SQL>
What i must to do in that situation?
User | Count |
---|---|
89 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.