JPA @OneToOne com ID compartilhado - Posso fazer isso melhor?

Estou trabalhando com um esquema existente que prefiro não alterar. O esquema tem um relacionamento individual entre as tabelas Person e VitalStats, em que Person tem uma chave primária e VitalStats usa o mesmo campo que sua chave primária e sua chave estrangeira para Person, o que significa que seu valor é o valor da PK correspondente da pessoa.

Esses registros são criados por processos externos e meu código JPA nunca precisa atualizar o VitalStats. Para o meu modelo de objeto, gostaria que minha classe Person contivesse um membro do VitalStats, MAS:

Quando eu tento

@Entity
public class Person{
    private long id;
    @Id
    public long getId(){ return id; }

    private VitalStats vs;
    @OneToOne(mappedBy = “person”)
    public VitalStats getVs() { return vs; }
}

@Entity
    public class VitalStats{
     private Person person;
    @OneToOne
    public Person getPerson() { return person; }
}

Tenho o problema de que o VitalStats não possui um @Id, o que não funciona para um @Entity. \

Se eu tentar

@Id @OneToOne
public Person getPerson() { return person; }

que resolve o problema do @Id, mas exige que a Pessoa seja serializável. Voltaremos a isso.

@I poderia tornar o VitalStats @Embeddable e conectá-lo ao Person por meio de um @ElementCollection, mas seria necessário acessá-lo como uma coleção, mesmo sabendo que há apenas um elemento. Possível, mas um pouco chato e um pouco confus

Então, o que está me impedindo de dizer que a pessoa implementa serializável? Na verdade, nada, exceto que eu gosto de tudo no meu código por um motivo e não consigo ver nenhuma lógica disso, o que torna meu código menos legível.

Enquanto isso, substituí o campo Person no VitalStats por um long personId e criei o @Id do VitalStats, agora o @OneToOne funciona.

Todas essas soluções para o que parece (para mim) um problema direto são um pouco desajeitadas, por isso estou me perguntando se estou perdendo alguma coisa ou se alguém pode pelo menos me explicar por que a Pessoa precisa ser serializável.

TIA

questionAnswers(2)

yourAnswerToTheQuestion