Bom dia!!
Eu tentei usar o comando de saveorUpdate do hibernate…
ele salva… só que quando tento fazer o update ele fala que está com duplicateKey… mas não faz sentido porque é saveorUpdate!!!
alguém sabe porque está acontecendo isso?!!
valeu!!!
Galera taí o erro que está gerando…
Jun 3, 2008 11:44:08 AM org.hibernate.util.JDBCExceptionReporter logExceptions
WARNING: SQL Error: 200, SQLState: I200
Jun 3, 2008 11:44:08 AM org.hibernate.util.JDBCExceptionReporter logExceptions
SEVERE: DUPLICATE KEY
Jun 3, 2008 11:44:08 AM org.hibernate.event.def.AbstractFlushingEventListener performExecutions
SEVERE: Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not insert: [br.com.consist.erp.se.bean.TabelaPrecoBean]
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2267)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at br.com.consist.erp.se.dao.TabelaPrecoDAO.save(TabelaPrecoDAO.java:41)
at br.com.consist.erp.se.service.TabelaPrecoService.save(TabelaPrecoService.java:53)
at testeunitario.se.UserTabelaPreco.main(UserTabelaPreco.java:90)
Caused by: java.sql.SQLException: DUPLICATE KEY
at de.sag.jdbc.adabasd.server.AServer.throwSQLException(AServer.java:764)
at de.sag.jdbc.adabasd.server.AServer.sendExecuteRequest(AServer.java:523)
at de.sag.jdbc.adabasd.APreparedStatement.sendExecuteRequest(APreparedStatement.java:333)
at de.sag.jdbc.adabasd.APreparedStatement.executeUpdate(APreparedStatement.java:195)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2247)
... 13 more
org.hibernate.exception.GenericJDBCException: could not insert: [br.com.consist.erp.se.bean.TabelaPrecoBean]
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2267)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2660)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at br.com.consist.erp.se.dao.TabelaPrecoDAO.save(TabelaPrecoDAO.java:41)
at br.com.consist.erp.se.service.TabelaPrecoService.save(TabelaPrecoService.java:53)
at testeunitario.se.UserTabelaPreco.main(UserTabelaPreco.java:90)
Caused by: java.sql.SQLException: DUPLICATE KEY
at de.sag.jdbc.adabasd.server.AServer.throwSQLException(AServer.java:764)
at de.sag.jdbc.adabasd.server.AServer.sendExecuteRequest(AServer.java:523)
at de.sag.jdbc.adabasd.APreparedStatement.sendExecuteRequest(APreparedStatement.java:333)
at de.sag.jdbc.adabasd.APreparedStatement.executeUpdate(APreparedStatement.java:195)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2247)
... 13 more
//olhem também as minhas anotações!
O XStream não influencia em nada!
@Entity
@Table(name = "nomedaTabela")
@IdClass(value=TabelaPrecoBean.class)
@XStreamAlias("tabelaPreco")
public class TabelaPrecoBean implements Serializable {
@Id
@Column(name="id1")
@XStreamAlias("tabPrcCodMatGru")
private Integer codigoMatrizGrupo;
@Id
@Column(name="id2")
@XStreamAlias("tabPrcCodEmp")
private Integer codigoEmpresa;
@Id
@Column(name="id3")
@XStreamAlias("tabPrcCodAnoRef")
private Integer codigoAnoReferencia;
@Id
@Column(name="id4")
@XStreamAlias("tabPrcCodMesRef")
private Integer codigoMesReferencia;
@Id
@Column(name="id5")
@XStreamAlias("tabPrcCod")
private Integer codigoTabelaPreco;
@Id
@Column(name="id6")
@XStreamAlias("tabPrcCodProd")
private String codigoProduto;
@Id
@Column(name="id7")
@XStreamAlias("tabPrcCodEmbl")
private String codigoEmbalagem;
@Transient
@XStreamAlias("tabPrcCodDesc")
private String codigoDescricaoGrupo;
@Column(name="se19_prven01")
@XStreamAlias("tabPrcPrcVen1")
private BigDecimal precoVendaDia01;
@Column(name="se19_prven02")
@XStreamAlias("tabPrcPrcVen2")
private BigDecimal precoVendaDia02;
@Column(name="se19_prven03")
@XStreamAlias("tabPrcPrcVen3")
private BigDecimal precoVendaDia03;
@Column(name="se19_prven04")
@XStreamAlias("tabPrcPrcVen4")
private BigDecimal precoVendaDia04;
@Column(name="se19_prven05")
@XStreamAlias("tabPrcPrcVen5")
private BigDecimal precoVendaDia05;
@Column(name="se19_prven06")
@XStreamAlias("tabPrcPrcVen6")
private BigDecimal precoVendaDia06;
@Column(name="se19_prven07")
@XStreamAlias("tabPrcPrcVen7")
private BigDecimal precoVendaDia07;
@Column(name="se19_prven08")
@XStreamAlias("tabPrcPrcVen8")
private BigDecimal precoVendaDia08;
@Column(name="se19_prven09")
@XStreamAlias("tabPrcPrcVen9")
private BigDecimal precoVendaDia09;
@Column(name="se19_prven10")
@XStreamAlias("tabPrcPrcVen10")
private BigDecimal precoVendaDia10;
@Column(name="se19_prven11")
@XStreamAlias("tabPrcPrcVen11")
private BigDecimal precoVendaDia11;
@Column(name="se19_prven12")
@XStreamAlias("tabPrcPrcVen12")
private BigDecimal precoVendaDia12;
@Column(name="se19_prven13")
@XStreamAlias("tabPrcPrcVen13")
private BigDecimal precoVendaDia13;
@Column(name="se19_prven14")
@XStreamAlias("tabPrcPrcVen14")
private BigDecimal precoVendaDia14;
@Column(name="se19_prven15")
@XStreamAlias("tabPrcPrcVen15")
private BigDecimal precoVendaDia15;
@Column(name="se19_prven16")
@XStreamAlias("tabPrcPrcVen16")
private BigDecimal precoVendaDia16;
@Column(name="se19_prven17")
@XStreamAlias("tabPrcPrcVen17")
private BigDecimal precoVendaDia17;
@Column(name="se19_prven18")
@XStreamAlias("tabPrcPrcVen18")
private BigDecimal precoVendaDia18;
@Column(name="se19_prven19")
@XStreamAlias("tabPrcPrcVen19")
private BigDecimal precoVendaDia19;
@Column(name="se19_prven20")
@XStreamAlias("tabPrcPrcVen20")
private BigDecimal precoVendaDia20;
@Column(name="se19_prven21")
@XStreamAlias("tabPrcPrcVen21")
private BigDecimal precoVendaDia21;
@Column(name="se19_prven22")
@XStreamAlias("tabPrcPrcVen22")
private BigDecimal precoVendaDia22;
@Column(name="se19_prven23")
@XStreamAlias("tabPrcPrcVen23")
private BigDecimal precoVendaDia23;
@Column(name="se19_prven24")
@XStreamAlias("tabPrcPrcVen24")
private BigDecimal precoVendaDia24;
@Column(name="se19_prven25")
@XStreamAlias("tabPrcPrcVen25")
private BigDecimal precoVendaDia25;
@Column(name="se19_prven26")
@XStreamAlias("tabPrcPrcVen26")
private BigDecimal precoVendaDia26;
@Column(name="se19_prven27")
@XStreamAlias("tabPrcPrcVen27")
private BigDecimal precoVendaDia27;
@Column(name="se19_prven28")
@XStreamAlias("tabPrcPrcVen28")
private BigDecimal precoVendaDia28;
@Column(name="se19_prven29")
@XStreamAlias("tabPrcPrcVen29")
private BigDecimal precoVendaDia29;
@Column(name="se19_prven30")
@XStreamAlias("tabPrcPrcVen30")
private BigDecimal precoVendaDia30;
@Column(name="se19_prven31")
@XStreamAlias("tabPrcPrcVen31")
private BigDecimal precoVendaDia31;
@Column(name="se19_dtalter")
@XStreamOmitField
private Integer dataAlteracao;
@Column(name="se19_hoalter")
@XStreamOmitField
private String horaAlteracao;
//equals hashcode getters and setters..