Couldn't we simplify the process of using compound keys? Actually the official JPA implementation sux a lot in my opinion(extra classes with @Embeddable and @EmbeddedId on the parent side). Something like: @Entity class Item { @CompositeId int itemId; @CompositeId int orderId; }