| Author |
JPA Auto Incrementing EmbeddedId (Composit primary key values).
|
Koti voddapally
Greenhorn
Joined: Mar 27, 2009
Posts: 3
|
|
Hi All,
I have a problem with JPA composit primary key. when I am inserting values into Postgresql I am getting below exception
Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.1 (Build b60-fcs (11/17/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERROR: null value in column "id_corporative_event" violates not-null constraint
Error Code: 0
Call: INSERT INTO public.tb_corporate_event (provent_price, provent_lot, dt_event, stock_lot, price_ex, dt_last_price_cum, ds_event, user_verified_bovespa, in_verified_company_ri, user_verified_company, in_verified_bovespa, dt_approved, coefficient_multiplication, price_cum, dh_verified_company_ri, dh_verified_company, id_stock, id_corporative_event, id_company, cd_corporative_event_type) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
bind => [null, null, 20100217, 0, 0.0, 21231, NAO NECESSARIO VERIFICACAO, null, N, null, N, null, 0.0, 77.0, null, null, 2, null, 1, AO]
Query: InsertObjectQuery(com.softidsolutions.valebroker.TbCorporateEvent@185e90f)
Could you please help me?
Here is the My POJO classes.
@Entity
@Table(name = "tb_corporate_event", schema = "public")
public class TbCorporateEvent implements java.io.Serializable {
// Fields
private TbCorporateEventId id;
....................
....................
@EmbeddedId
@AttributeOverrides( {
@AttributeOverride(name = "idStock", column = @Column(name = "id_stock", nullable = false)),
@AttributeOverride(name = "idCorporativeEvent", column = @Column(name = "id_corporative_event", nullable = false))})
public TbCorporateEventId getId() {
return this.id;
}
public void setId(TbCorporateEventId id) {
this.id = id;
}
// class ends here
and Embedded class is :
@Embeddable
public class TbCorporateEventId implements java.io.Serializable {
// Fields
private Integer idStock;
private Integer idCorporativeEvent;
...........................
@Column(name = "id_corporative_event", nullable = false)
public Integer getIdCorporativeEvent() {
return this.idCorporativeEvent;
}
public void setIdCorporativeEvent(Integer idCorporativeEvent) {
this.idCorporativeEvent = idCorporativeEvent;
}
I want to Auto increment id_corporative_event value?
Can any body help me?
|
 |
Vivian Josh
Ranch Hand
Joined: Oct 31, 2006
Posts: 112
|
|
Hi Koti,
How did you solve this problem? I am facing similar issue.
Please let me know if you got around this one.
Thanks
Vivian
|
 |
Shannon McGee
Greenhorn
Joined: Oct 01, 2009
Posts: 18
|
|
Hi Koti and Vivian,
I noticed that in your base class haven't annotated your 'id' with @Id. That would be my first recommendation.
The simplest way to annotate an attribute as a sequence is:
@GeneratedValue(strategy=GenerationType.AUTO)
I believe the default sequencing will be with a table named 'SEQUENCE', and the following attributes:
SEQ_NAME VARCHAR2(50) PK
SEQ_COUNT NUMBER -
|
 |
Vivian Josh
Ranch Hand
Joined: Oct 31, 2006
Posts: 112
|
|
Thanks Shannon.
Yup, I got it later. Thanks for your reply.
-Vivian
|
 |
 |
|
|
subject: JPA Auto Incrementing EmbeddedId (Composit primary key values).
|
|
|