If we try to create an Entity Object (EO) based on a View or Synonym, we should add a Primary Key to EO manually , the reason is ADF Framework can't get the PK by itself .
by adding PK manually , you avoid adding rowid column for your EO by ADF Framework .
(you can find another issue based on the same subject here:Entity Object based on Synonym issue )
an example : without PK
finally , If you use Entity Object option instead of ADF Business Component, you will be asked to add the primary key to a view/Synonym