Using compound primary key throws SQLException

Description

Using compound primary keys via @IdClass causes an exception when calling persist:

Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not insert: [de.methodpark.stages.model.UserAssignment]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1214)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1147)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1153)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:678)
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.persist(EntityManagerWrapper.java:258)

Same code works when switching JPA provider to EclipseLink.

@Entity
@Table(name = "user_assignment")
@IdClass(value = UserAssignmentId.class)
public class UserAssignment implements Serializable {
@Id
private Long userId;

@Id
private Long elementId;

@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "element_id", referencedColumnName = "id")
private Element element;

@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_id", referencedColumnName = "id")
private User user;
}

public class UserAssignmentId implements Serializable {

public UserAssignmentId() { }

@Column(name = "user_id", insertable = false, updatable = false)
public Long userId;

@Column(name = "element_id", insertable = false, updatable = false)
public Long elementId;
}

Environment

Hibernate 3.6.0, MySql

Activity

Show:
Ralf Pöhlmann
October 19, 2010, 10:19 AM

Stack Trace

Brett Meyer
April 7, 2014, 5:46 PM

In an effort to clean up, in bulk, tickets that are most likely out of date, we're transitioning all ORM 3 tickets to an "Awaiting Test Case" state. Please see http://in.relation.to/Bloggers/HibernateORMJIRAPoliciesAndCleanUpTactics for more information.

If this is still a legitimate bug in ORM 4, please provide either a test case that reproduces it or enough detail (entities, mappings, snippets, etc.) to show that it still fails on 4. If nothing is received within 3 months or so, we'll be automatically closing them.

Thank you!

Brett Meyer
July 8, 2014, 3:10 PM

Bulk rejecting stale issues. If this is still a legitimate issue on ORM 4, feel free to comment and attach a test case. I'll address responses case-by-case. Thanks!

Assignee

Unassigned

Reporter

Ralf Pöhlmann

Fix versions

None

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Priority

Critical
Configure