EclipseLink が There should be one non-read-only mapping defined for the primary key field と言って来る場合、多分まず間違いなく Dali の Entity class の自動生成が PK に対して @PrimaryKeyJoinColumn を生成すべきところを @JoinColumn を生成するために起きている。
orm.xml で Entity 定義を下記のような感じで上書きしてやると自動生成クラスを改変せず対処できる。
<entity-mappings> <entity name="ATable" class="model.ATable"> <attributes> <one-to-one name="ForeignTable"> <primary-key-join-column name="id"/> </one-to-one> </attributes> </entity> </entity-mappings>