This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.
When you refer the @PrimaryKeyColumn you mean PrimaryKeyJoinColumn ? if yes the the answer is hidden in the annotation name.
The JoinColumn is used to join a column from a source table with an other (table) destination column where the source table column (to join) is a foriner key (in EJB in Action this explication is on page 274). This means you just join a column - not a special column like the primary key column.
The PrimaryKeyJoinColumn does what the JoinColumn does not do it joins a column from a source table on other destination (table) column where the source table column (to join) is a primary key column. This means you join a certain kind of column the id column.
But don't worry I also read and re-read (and re-read,....) until a really understand what is going on. The "EJB in Action" explanations are pretty clear but you need also a little bit Relational Database way of thinking -> you must be able to picture in your head how the primary key- foreigner key relation are working after this everything is quite easy.