Ola, senhores.
Estou importando os dados do XML e quando tento inserir no banco de dados retorna o seguinte erro:
JDBCExceptionReporter - Incorrect integer value: ‘¬í’ for column ‘occurrence_site’ at row 1
Debugando o codigo percebo que o valor passado trata- se de um inteiro(‘5’) e nao ‘¬í’
Acredito que este erro esteja relacionado ao mapeamento, veja minhas classes:
package br.com.tecfort.jpa.entities;
import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.EntityNotFoundException;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PostLoad;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import br.com.tecfort.occurrence.property.OccurrenceProperty;
/**
* The persistent class for the occurrence database table.
*
*/
@Entity
@Table(name = OccurrenceConstant.OCCURRENCE)
public class Occurrence extends OccurrenceConstant implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
OccurrencePK id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = OCCURRENCE_DATE_SCAN)
private Date occurrenceDateScan;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = OCCURRENCE_DATE_CREATION)
private Date occurrenceDateCreation;
@Temporal(TemporalType.DATE)
@Column(name = OCCURRENCE_DATE_TRT)
private Date occurrenceDateTrt;
// bi-directional many-to-one association to Image
@OneToMany(mappedBy = OCCURRENCE, fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<Image> images;
@Lob()
@Column(name = OCCURRENCE_NOTE)
private String occurrenceNote;
@Column(name = OCCURRENCE_STATE, nullable = false)
private Short occurrenceState;
@Column(name = OCCURRENCE_TYPE)
private Long occurrenceType;
@Column(name = OCCURRENCE_VALUE_ENVELOPE)
private String occurrenceValueEnvelope;
@Column(name = OCCURRENCE_TERMINAL_NUMBER)
private Integer occurrenceTerminalNumber;
// bi-directional many-to-one association to Account
@ManyToOne
@JoinColumn(name = OCCURRENCE_ACCOUNT_ID, nullable = true)
private Account account;
// bi-directional many-to-one association to Site
@ManyToOne
@JoinColumn(name = OCCURRENCE_AGENCY_SOURCE, nullable = true)
private Agency occurrenceAgencySource;
@OneToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = OCCURRENCE_ID, referencedColumnName = OccurrenceTmpConstant.OCCURRENCE_TMP_ID, insertable = false, updatable = false, nullable=true),
@JoinColumn(name = OCCURRENCE_SITE, referencedColumnName = OccurrenceTmpConstant.OCCURRENCE_TMP_SITE, insertable = false, updatable = true, nullable=true)
})
private OccurrenceTmp occurrenceTmp;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = OCCURRENCE_LOCK_CREATION)
private Date occurrenceLockCreation;
@Column(name = OCCURRENCE_AMOUNT)
private Integer occurrenceAmount;
public Occurrence() {
}
// this is a workaround as due to the composite key, the occurrence_tmp attribute is not being loaded null.
@PostLoad
public void postLoad(){
try{
occurrenceTmp.getId();
} catch (Exception e) {
occurrenceTmp = null;
}
}
public Occurrence(Integer occId, Date occDateScan, Date occDateTrt, Set<Image> images, String note, Site site,
Short occState, Long occType, Account account, Agency occAgencySrc, OccurrenceTmp occTmp, String valueEnvelope, Integer terminalNumber, Integer occurrenceAmount) {
OccurrencePK occPK = new OccurrencePK();
if (occId != null)
occPK.setOccurrenceId(occId);
if (site != null)
occPK.setOccurrenceSite(site);
setId(occPK);
if (occDateScan != null)
setOccurrenceDateScan(occDateScan);
if (occDateTrt != null)
setOccurrenceDateTrt(occDateTrt);
if (images != null)
setImages(images);
if (note != null)
setOccurrenceNote(note);
if (occState != null)
setOccurrenceState(occState);
if (occType != null)
setOccurrenceType(occType);
if (account != null)
setAccount(account);
if (occAgencySrc != null)
setOccurrenceAgencySource(occAgencySrc);
if (occTmp != null)
setOccurrenceTmp(occTmp);
if (valueEnvelope != null)
setOccurrenceValueEnvelope(valueEnvelope);
if (terminalNumber != null)
setOccurrenceTerminalNumber(terminalNumber);
if (occurrenceAmount != null)
setOccurrenceAmount(occurrenceAmount);
}
public Integer getOccurrenceAmount() {
return occurrenceAmount;
}
public void setOccurrenceAmount(Integer occurrenceAmount) {
this.occurrenceAmount = occurrenceAmount;
}
public String getOccurrenceValueEnvelope() {
return occurrenceValueEnvelope;
}
public void setOccurrenceValueEnvelope(String occurrenceValueEnvelope) {
this.occurrenceValueEnvelope = occurrenceValueEnvelope;
}
public Integer getOccurrenceTerminalNumber() {
return occurrenceTerminalNumber;
}
public void setOccurrenceTerminalNumber(Integer occurrenceTerminalNumber) {
this.occurrenceTerminalNumber = occurrenceTerminalNumber;
}
public OccurrencePK getId() {
return id;
}
public void setId(OccurrencePK id) {
this.id = id;
}
public Date getOccurrenceDateScan() {
return this.occurrenceDateScan;
}
public void setOccurrenceDateScan(Date occurrenceDateScan) {
this.occurrenceDateScan = occurrenceDateScan;
}
public String getOccurrenceNote() {
return this.occurrenceNote;
}
public void setOccurrenceNote(String occurrenceNote) {
this.occurrenceNote = occurrenceNote;
}
public Short getOccurrenceState() {
return this.occurrenceState;
}
public void setOccurrenceState(Short occurrenceState) {
this.occurrenceState = occurrenceState;
}
public Long getOccurrenceType() {
return this.occurrenceType;
}
public void setOccurrenceType(Long occurrenceType) {
this.occurrenceType = occurrenceType;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
public void setImages(Set<Image> images) {
this.images = images;
}
public Set<Image> getImages() {
return images;
}
public void setOccurrenceAgencySource(Agency occurrenceAgencySource) {
this.occurrenceAgencySource = occurrenceAgencySource;
}
public Agency getOccurrenceAgencySource() {
return occurrenceAgencySource;
}
public void setOccurrenceDateTrt(Date occurrenceDateTrt) {
this.occurrenceDateTrt = occurrenceDateTrt;
}
public Date getOccurrenceDateTrt() {
return occurrenceDateTrt;
}
public void setOccurrenceTmp(OccurrenceTmp occurrenceTmp) {
this.occurrenceTmp = occurrenceTmp;
}
public OccurrenceTmp getOccurrenceTmp() {
return occurrenceTmp;
}
public void setOccurrenceDateCreation(Date occurrenceDateCreation) {
this.occurrenceDateCreation = occurrenceDateCreation;
}
public Date getOccurrenceDateCreation() {
return occurrenceDateCreation;
}
public void setOccurrenceLock(Date occurrenceLockCreation) {
this.occurrenceLockCreation = occurrenceLockCreation;
}
public Date getOccurrenceLock() {
return occurrenceLockCreation;
}
public OccurrenceDel getOccurrenceDel() {
OccurrenceDelPK occDelPK = new OccurrenceDelPK();
occDelPK.setOccurrenceId(id.getOccurrenceId());
occDelPK.setOccurrenceSite(id.getOccurrenceSite());
OccurrenceDel occDel = new OccurrenceDel();
occDel.setId(occDelPK);
occDel.setOccurrenceDelDateCreation(occurrenceDateCreation);
occDel.setOccurrenceDelDateScan(occurrenceDateScan);
occDel.setOccurrenceDelDateTrt(occurrenceDateTrt);
occDel.setOccurrenceDelDateDelete(new Date(System.currentTimeMillis()));
if (occurrenceTmp != null && occurrenceDateScan!= null ) {
try{
occurrenceTmp.getOccurrenceTmpAccountAgency();
occDel.setOccurrenceDelAccountAgency(occurrenceTmp.getOccurrenceTmpAccountAgency());
occDel.setOccurrenceDelAccountName(occurrenceTmp.getOccurrenceTmpAccountName());
occDel.setOccurrenceDelAccountNumber(occurrenceTmp.getOccurrenceTmpAccountNumber());
occDel.setOccurrenceDelAgencySource(occurrenceTmp.getOccurrenceTmpSrcAgency());
} catch (EntityNotFoundException e) {
System.err.println();}
} else if (account != null) {
occDel.setOccurrenceDelAccountAgency(account.getAccountAgency());
occDel.setOccurrenceDelAccountName(account.getAccountName());
occDel.setOccurrenceDelAccountNumber(account.getAccountNumber());
}
if (occurrenceAgencySource != null) {
occDel.setOccurrenceDelAgencySource(occurrenceAgencySource.getAgencyCode());
}
Set<ImageDel> imageDelSet = new HashSet<ImageDel>();
ImageDel imageDel;
for (Image image : images) {
imageDel = image.getImageDel();
imageDel.setOccurrenceDel(occDel);
imageDel.setOccurrenceDelId(occDel.getId().getOccurrenceId());
imageDelSet.add(imageDel);
}
occDel.setImagesDel(imageDelSet);
occDel.setOccurrenceDelNote(occurrenceNote);
occDel.setOccurrenceDelState(occurrenceState);
occDel.setOccurrenceDelType(occurrenceType);
occDel.setOccurrenceDelValueEnvelope(occurrenceValueEnvelope);
// occDel.setOccurrenceDelOccurrenceGroup(occurrenceGroupId);
occDel.setOccurrenceDelTerminalNumber(occurrenceTerminalNumber);
return occDel;
}
@Override
public String toString() {
StringBuffer ret = new StringBuffer()
.append(" Ocorr�ncia: ")
.append(OccurrenceProperty.DATE_HUMAN_FORMAT.format(occurrenceDateTrt))
.append(" - Ag�ncia Origem: ")
.append((occurrenceAgencySource != null) ? occurrenceAgencySource.getAgencyCode() : "n/c")
.append(" - Cliente: ")
.append((account != null) ? account.getAccountName() : "n/c")
.append(" - C/C: ")
.append((account != null) ? Account.getAccountNumber(account.getAccountNumber()) + "-"
+ Account.getAccountDigit(account.getAccountNumber()) : "n/c").append(" - Ag: ")
.append((account != null) ? account.getAccountAgency() : "n/c");
return ret.toString();
}
public String getStringIdentifier() {
return String.valueOf(id.getIdentifier());
}
public int getIdentifier() {
return id.getIdentifier();
}
public static Integer getOccurrenceId(String occIdentifier) {
return Integer.parseInt(occIdentifier.substring(1, occIdentifier.length()));
}
public static Short getOccurrenceSiteId(String occIdentifier) {
return Short.parseShort(occIdentifier.substring(0, 1));
}
public static Integer getOccurrenceId(Integer occIdentifier) {
return getOccurrenceId(String.valueOf(occIdentifier));
}
public static Short getOccurrenceSiteId(Integer occIdentifier) {
return getOccurrenceSiteId(String.valueOf(occIdentifier));
}
}
alguem pode me ajudar?