Here's the setup:
// desc salespersons id <- primary key name activeaccountid <- OneToOne //desc accounts id <- primary key sid
@Entity @Table(name="salespersons") public class Salesperson implements Serializable { ... private Integer id; private String name; private Integer activeaccountid; private Collection<Account> _accounts; private Account _activeaccount; // This works GREAT! @OneToMany @JoinColumn(name="sid") public Collection<Account> getAccounts() { return _accounts; } public void setAccounts( Collection<Account> accounts) { _accounts = accounts; } // THIS IS WHERE I GET CONFUSED @OneToOne // I've tried this: @JoinColumn(name="id", referencedColumnName="activeaccountid") // And this: @JoinColumn(name="activeaccountid", referencedColumnName="id") // and all sorts of other combinations public Account getActiveAccount() { return _activeaccount; } public void setActiveAccount( Account activeaccount) { _activeaccount = activeaccount; } ... getters and setters for fields ... ... }