JDBC Exception - Incorrect integer value: '’' for column

Boa tarde.

Debugo o codigo e verifiquei que o valor passado é um integer porem apresenta o erro ‘incorrect integer value’. alguem saberia me dizer o que este erro significa?

Cola o erro aí pra gente dar uma olhada, mas parece que você tentou salvar algum dado num campo integer que não é inteiro ou vice e versa, mas posta erro que fica mais fácil.

2012-10-26 18:08:40 INFO http-bio-8080-exec-1 HttpSessionManager - HttpSessionManager: Session created 364BD289F3E56115323D814709DAE938
2012-10-26 18:08:41 INFO http-bio-8080-exec-2 LoginAction - Called Login Action
2012-10-26 18:08:42 WARN http-bio-8080-exec-2 ServletUrlRenderer - No configuration found for the specified action: ‘/common/login.action’ in namespace: ‘/common’. Form action defaulting to ‘action’ attribute’s literal value.
2012-10-26 18:08:43 WARN http-bio-8080-exec-2 ServletUrlRenderer - No configuration found for the specified action: ‘/common/login.action’ in namespace: ‘/common’. Form action defaulting to ‘action’ attribute’s literal value.
Hibernate: UPDATE occurrence SET occurrence_lock_creation = NULL WHERE TIMESTAMPDIFF(MINUTE, occurrence_lock_creation, NOW()) > ?
Hibernate: UPDATE occurrence SET occurrence_lock_creation = NULL WHERE TIMESTAMPDIFF(MINUTE, occurrence_lock_creation, NOW()) > ?
2012-10-26 18:08:50 INFO http-bio-8080-exec-1 LoginAction - Called Login Action
2012-10-26 18:08:50 INFO http-bio-8080-exec-1 UserMapping - creating the user list
Hibernate: select user0_.user_name as user1_11_, user0_.user_change_pwd as user2_11_, user0_.user_group_name as user7_11_, user0_.user_desc as user3_11_, user0_.user_last_login as user4_11_, user0_.user_last_logout as user5_11_, user0_.user_pwd as user6_11_ from user user0_
Hibernate: select group0_.group_name as group1_8_0_, group0_.group_desc as group2_8_0_, group0_.group_features_enable as group3_8_0_ from user_group group0_ where group0_.group_name=?
Hibernate: select groupsites0_.group_site_name as group2_11_1_, groupsites0_.group_site_id as group1_1_, groupsites0_.group_site_name as group2_1_, groupsites0_.group_site_id as group1_10_0_, groupsites0_.group_site_name as group2_10_0_ from group_site groupsites0_ where groupsites0_.group_site_name=?
Hibernate: select groupclien0_.group_client_name as group3_11_1_, groupclien0_.group_agency_id as group1_1_, groupclien0_.group_client_id as group2_1_, groupclien0_.group_client_name as group3_1_, groupclien0_.group_agency_id as group1_9_0_, groupclien0_.group_client_id as group2_9_0_, groupclien0_.group_client_name as group3_9_0_ from group_client groupclien0_ where groupclien0_.group_client_name=?
2012-10-26 18:08:51 INFO http-bio-8080-exec-1 UserMapping - User admin authenticated
2012-10-26 18:08:51 INFO http-bio-8080-exec-1 LoginAction - User admin logged in
Hibernate: select user0_.user_name as user1_11_1_, user0_.user_change_pwd as user2_11_1_, user0_.user_group_name as user7_11_1_, user0_.user_desc as user3_11_1_, user0_.user_last_login as user4_11_1_, user0_.user_last_logout as user5_11_1_, user0_.user_pwd as user6_11_1_, groupclien1_.group_client_name as group3_11_3_, groupclien1_.group_agency_id as group1_3_, groupclien1_.group_client_id as group2_3_, groupclien1_.group_client_name as group3_3_, groupclien1_.group_agency_id as group1_9_0_, groupclien1_.group_client_id as group2_9_0_, groupclien1_.group_client_name as group3_9_0_ from user user0_ left outer join group_client groupclien1_ on user0_.user_name=groupclien1_.group_client_name where user0_.user_name=?
Hibernate: select group0_.group_name as group1_8_0_, group0_.group_desc as group2_8_0_, group0_.group_features_enable as group3_8_0_ from user_group group0_ where group0_.group_name=?
Hibernate: select groupsites0_.group_site_name as group2_11_1_, groupsites0_.group_site_id as group1_1_, groupsites0_.group_site_name as group2_1_, groupsites0_.group_site_id as group1_10_0_, groupsites0_.group_site_name as group2_10_0_ from group_site groupsites0_ where groupsites0_.group_site_name=?
Hibernate: insert into auditing (auditing_action, auditing_creation_date, auditing_module, auditing_note, auditing_product_id, auditing_site, auditing_user) values (?, ?, ?, ?, ?, ?, ?)
Hibernate: update user set user_change_pwd=?, user_group_name=?, user_desc=?, user_last_login=?, user_last_logout=?, user_pwd=? where user_name=?
Hibernate: insert into auditing (auditing_action, auditing_creation_date, auditing_module, auditing_note, auditing_product_id, auditing_site, auditing_user) values (?, ?, ?, ?, ?, ?, ?)
2012-10-26 18:08:53 INFO http-bio-8080-exec-1 SiteMapping - creating the site list
Hibernate: select site0_.site_id as site1_7_, site0_.site_address as site2_7_, site0_.site_desc as site3_7_, site0_.site_name as site4_7_ from site site0_
Hibernate: UPDATE occurrence SET occurrence_lock_creation = NULL WHERE TIMESTAMPDIFF(MINUTE, occurrence_lock_creation, NOW()) > ?
Hibernate: insert into auditing (auditing_action, auditing_creation_date, auditing_module, auditing_note, auditing_product_id, auditing_site, auditing_user) values (?, ?, ?, ?, ?, ?, ?)
2012-10-26 18:08:55 INFO OccurrenceZipProcessor1 Unziper - Extracting: 12860015600210716_001.jpg
2012-10-26 18:08:55 INFO OccurrenceZipProcessor1 Unziper - Extracting: 12860015600210716_001.jpg.v
2012-10-26 18:08:55 INFO OccurrenceZipProcessor1 Unziper - Extracting: 12860015600210716_003.jpg
2012-10-26 18:08:55 INFO OccurrenceZipProcessor1 Unziper - Extracting: 12860015600210716_004.jpg
2012-10-26 18:08:55 INFO OccurrenceZipProcessor1 Unziper - Extracting: 12860015600210716_005.jpg
2012-10-26 18:08:55 INFO OccurrenceZipProcessor1 Unziper - Extracting: 12860015600210716_006.jpg
2012-10-26 18:08:55 INFO OccurrenceZipProcessor1 Unziper - Extracting: FP20121010210734.xml
Hibernate: select max(occurrence_id) from occurrence where occurrence_site = ?
Hibernate: select max(occurrence_del_id) from occurrence_del where occurrence_del_site = ?
Hibernate: select max(image_id) from image where image_site = ?
Hibernate: select max(image_del_id) from image_del where image_del_site = ?
Hibernate: select image0_.image_id as image1_2_0_, image0_.image_site as image2_2_0_, image0_.image_dattrt as image3_2_0_, image0_.image_dateofscan as image4_2_0_, image0_.image_desc as image5_2_0_, image0_.image_state as image6_2_0_, image0_.image_type as image7_2_0_, image0_.image_occurrence_id as image8_2_0_, image0_.IMAGE_OCCURRENCE_ID as IMAGE8_2_0_ from image image0_ where image0_.image_id=? and image0_.image_site=?
Hibernate: select image0_.image_id as image1_2_0_, image0_.image_site as image2_2_0_, image0_.image_dattrt as image3_2_0_, image0_.image_dateofscan as image4_2_0_, image0_.image_desc as image5_2_0_, image0_.image_state as image6_2_0_, image0_.image_type as image7_2_0_, image0_.image_occurrence_id as image8_2_0_, image0_.IMAGE_OCCURRENCE_ID as IMAGE8_2_0_ from image image0_ where image0_.image_id=? and image0_.image_site=?
Hibernate: select image0_.image_id as image1_2_0_, image0_.image_site as image2_2_0_, image0_.image_dattrt as image3_2_0_, image0_.image_dateofscan as image4_2_0_, image0_.image_desc as image5_2_0_, image0_.image_state as image6_2_0_, image0_.image_type as image7_2_0_, image0_.image_occurrence_id as image8_2_0_, image0_.IMAGE_OCCURRENCE_ID as IMAGE8_2_0_ from image image0_ where image0_.image_id=? and image0_.image_site=?
Hibernate: select image0_.image_id as image1_2_0_, image0_.image_site as image2_2_0_, image0_.image_dattrt as image3_2_0_, image0_.image_dateofscan as image4_2_0_, image0_.image_desc as image5_2_0_, image0_.image_state as image6_2_0_, image0_.image_type as image7_2_0_, image0_.image_occurrence_id as image8_2_0_, image0_.IMAGE_OCCURRENCE_ID as IMAGE8_2_0_ from image image0_ where image0_.image_id=? and image0_.image_site=?
Hibernate: select image0_.image_id as image1_2_0_, image0_.image_site as image2_2_0_, image0_.image_dattrt as image3_2_0_, image0_.image_dateofscan as image4_2_0_, image0_.image_desc as image5_2_0_, image0_.image_state as image6_2_0_, image0_.image_type as image7_2_0_, image0_.image_occurrence_id as image8_2_0_, image0_.IMAGE_OCCURRENCE_ID as IMAGE8_2_0_ from image image0_ where image0_.image_id=? and image0_.image_site=?
Hibernate: insert into occurrence (occurrence_account_id, occurrence_agency_source, occurrence_amount, occurrence_date_creation, occurrence_date_scan, occurrence_date_trt, occurrence_lock_creation, occurrence_note, occurrence_state, occurrence_terminal_number, occurrence_type, occurrence_value_envelope, occurrence_id, occurrence_site) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2012-10-26 18:09:30 WARN OccurrenceZipProcessor1 JDBCExceptionReporter - SQL Error: 1366, SQLState: HY000
2012-10-26 18:09:30 ERROR OccurrenceZipProcessor1 JDBCExceptionReporter - Incorrect integer value: ‘¬í’ for column ‘occurrence_site’ at row 1
2012-10-26 18:09:30 ERROR OccurrenceZipProcessor1 GenericDAOImpl - insert() threw an exception: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
2012-10-26 18:09:30 ERROR OccurrenceZipProcessor1 AbstractOccurrenceProcessor - Error storing the occurrence: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update

Hibernate: UPDATE occurrence SET occurrence_lock_creation = NULL WHERE TIMESTAMPDIFF(MINUTE, occurrence_lock_creation, NOW()) > ?
Hibernate: UPDATE occurrence SET occurrence_lock_creation = NULL WHERE TIMESTAMPDIFF(MINUTE, occurrence_lock_creation, NOW()) > ?
Hibernate: UPDATE occurrence SET occurrence_lock_creation = NULL WHERE TIMESTAMPDIFF(MINUTE, occurrence_lock_creation, NOW()) > ?
Hibernate: UPDATE occurrence SET occurrence_lock_creation = NULL WHERE TIMESTAMPDIFF(MINUTE, occurrence_lock_creation, NOW()) > ?

Me parece ser um erro de persistencia mas nao consigo identificar… :roll:

.

Olhada rápida,parece que você está tentando inserir isso ¬í no campo occurrence_site e esse campo é do tipo inteiro.

Incorrect integer value: ‘¬í’ for column ‘occurrence_site’ at row 1
2012-10-26 18:09:30 ERROR OccurrenceZipProcessor1 GenericDAOImpl - insert() threw an exception: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update

Verifica o mapeamento da classe e os dados que você está tentando inserir.

E vai postando aí.

O dado a ser inserido é um inteiro, conforme consigo visualizar no debbug. Creio que o problema esteja no mapeamento. Vou postar trechos do meu codigo, veja se vc consegue encontrar algum erro no mapeamento, por favor:

@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 = false, 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));
    }

}
package br.com.tecfort.jpa.entities;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

/**
 * The primary key class for the image database table.
 * 
 */
@Embeddable
public class OccurrencePK extends OccurrenceConstant implements Serializable {
    // default serial version id, required for serializable classes.
    private static final long serialVersionUID = 1L;

    @Column(name = OCCURRENCE_ID, unique = true, nullable = false)
    private Integer occurrenceId;

    // bi-directional many-to-one association to Occurrence
//    @ManyToOne
//    @JoinColumn(name = OCCURRENCE_SITE, unique = true, nullable = false)
    @Column(name = OCCURRENCE_SITE, unique = true, nullable = false)
    private Site occurrenceSite;

    public OccurrencePK() {
    }

    public OccurrencePK(int occId, Site site) {
        this.occurrenceId = occId;
        this.occurrenceSite = site;
    }

    public int getOccurrenceId() {
        return occurrenceId;
    }

    public void setOccurrenceId(Integer occurrenceId) {
        this.occurrenceId = occurrenceId;
    }

    public Site getOccurrenceSite() {
        return occurrenceSite;
    }

    public void setOccurrenceSite(Site occurrenceSite) {
        this.occurrenceSite = occurrenceSite;
    }

    public OccurrencePK(Integer imageId, Site imageSite) {
        if (imageId != null)
            setOccurrenceId(imageId);
        if (imageSite != null)
            setOccurrenceSite(imageSite);
    }

    @Override
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (!(other instanceof OccurrencePK)) {
            return false;
        }
        OccurrencePK castOther = (OccurrencePK) other;
        return (this.occurrenceId == castOther.occurrenceId)
                && (this.occurrenceSite.getSiteId() == castOther.occurrenceSite.getSiteId());

    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int hash = 17;
        hash = hash * prime + this.occurrenceId;
        hash = hash * prime + this.occurrenceSite.getSiteId();

        return hash;
    }

    public int getIdentifier() {
        return Integer.parseInt("" + occurrenceSite.getSiteId() + occurrenceId);
    }
}
package br.com.tecfort.jpa.entities;

import java.io.Serializable;

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


/**
 * The persistent class for the site database table.
 * 
 */
@Entity
@Table(name=SiteConstant.SITE_TABLE)
public class Site extends SiteConstant implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name=SITE_ID, unique=true, nullable=false)
	private Short siteId;

	@Column(name=SITE_ADDRESS, nullable=false, length=256)
	private String siteAddress;

	@Column(name=SITE_DESC, nullable=false, length=256)
	private String siteDesc;

	@Column(name=SITE_NAME, nullable=false, length=128)
	private String siteName;

//	//bi-directional many-to-one association to Occurrence
//	@OneToMany(mappedBy=SiteConstant.SITE_TABLE)
//	private Set<Occurrence> occurrences;

//	@OneToMany(mappedBy=SiteConstant.SITE_TABLE)
//	private Set<Agency> agencies;
	
	
	
//    public Set<Agency> getAgencies() {
//		return agencies;
//	}
//
//	public void setAgencies(Set<Agency> agencies) {
//		this.agencies = agencies;
//	}

	public Site() {
    }

	public Short getSiteId() {
		return this.siteId;
	}

	public void setSiteId(Short siteId) {
		this.siteId = siteId;
	}

	public String getSiteAddress() {
		return this.siteAddress;
	}

	public void setSiteAddress(String siteAddress) {
		this.siteAddress = siteAddress;
	}

	public String getSiteDesc() {
		return this.siteDesc;
	}

	public void setSiteDesc(String siteDesc) {
		this.siteDesc = siteDesc;
	}

	public String getSiteName() {
		return this.siteName;
	}

	public void setSiteName(String siteName) {
		this.siteName = siteName;
	}

//	public Set<Occurrence> getOccurrences() {
//		return this.occurrences;
//	}
//
//	public void setOccurrences(Set<Occurrence> occurrences) {
//		this.occurrences = occurrences;
//	}
	
	public String toString () {
		StringBuffer ret = new StringBuffer()
		.append(siteName)
		.append("-")
		.append("End: "+ siteAddress);
		return ret.toString();
	}
}

Aqui não deveria ser int ao invés de Site?

@Column(name = OCCURRENCE_SITE, unique = true, nullable = false) private Site occurrenceSite;

É que tô meio enrolado para olhar com mais calma, mas verifica isso aí, blz?