You can use joinColumn to define a join column in the table that references the primary key of the associated table. PrimaryKeyJoinColumn is a little diferent and much easier when the primary key of the related entities are identical, so you do not need to specify a join column.
(1) For defining linkage to a secondary table: @SecondaryTable(name="EMP_ADDRESS", pkJoinColumns=@PrimaryKeyJoinColumn(name="EMP_ID"))
(2) When no additional foreign key column in either table.In this case, @PrimaryKeyJoinColumn is used instead of an @JoinColumn annotation.
Usage of JoinColumn:
A relationship mapping where one table has a reference to another table. i.e existence of foreign key column. In JPA its called join columns and @JoinColumn annotation is the primary annotation used to configure these types of columns. Eg: