File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Object Relational Mapping and the fly likes JPA Auto Incrementing EmbeddedId (Composit primary key values). Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "JPA Auto Incrementing EmbeddedId (Composit primary key values)." Watch "JPA Auto Incrementing EmbeddedId (Composit primary key values)." New topic

JPA Auto Incrementing EmbeddedId (Composit primary key values).

Koti voddapally

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.

@Table(name = "tb_corporate_event", schema = "public")
public class TbCorporateEvent implements {

// Fields

private TbCorporateEventId id;

@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() {

public void setId(TbCorporateEventId id) { = id;

// class ends here

and Embedded class is :

public class TbCorporateEventId implements {

// 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.

Shannon McGee

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:

I believe the default sequencing will be with a table named 'SEQUENCE', and the following attributes:
Vivian Josh
Ranch Hand

Joined: Oct 31, 2006
Posts: 112
Thanks Shannon.

Yup, I got it later. Thanks for your reply.

I agree. Here's the link:
subject: JPA Auto Incrementing EmbeddedId (Composit primary key values).
It's not a secret anymore!