Vou sugerir uma abordagem diferente, embora seja uma pergunta um pouco mais antiga. Em vez de fazer duas entidades, você deve fazer três.
Crie FileMetadata, que contém o nome, tipo MIME, etc. Crie FileContent, que contém o conteúdo. Em seguida, crie um terceiro arquivo de entidade que mantenha uma conexão um-para-um com um de cada um dos outros tipos e forneça a ele vários métodos que simplesmente chamam os métodos correspondentes nas subentidades.
Então, por exemplo, em File, o método setName ficaria assim:
public function setName() {
$this->getFileMetadata()->getName();
}
E o conjunto ficaria assim:
public function setName( $name ) {
$this->getFileMetadata()->setName( $name );
}
O construtor da entidade File deve criar um novo FileMetadata e um novo FileContent na criação e NÃO deve ter um método setFilemetadata ou setFilecontent; essas duas entidades devem ser completamente protegidas do seu aplicativo.
Agora você tem a entidade File, que trata exatamente como você deseja (uma única entidade, sem subentidades adicionais) que ainda é armazenada ordenadamente em duas (bem, três realmente) tabelas diferentes.