aspose file tools*
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
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
 
Don't get me started about those stupid light bulbs.
 
subject: JPA Auto Incrementing EmbeddedId (Composit primary key values).
 
Similar Threads
JPA Auto Incrementing EmbeddedId (Composit primary key values).
Populate child table foreign keys from primary table?
composite key and Criteria API [Hibernate]
need good example of hibernate with composit key
JPA entities -- org.hibernate.TypeMismatchException