Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

<p>Hibernate: Mapeamentos</p><p>Associações Unidirecionais sem Join Tables</p><p>Muitos-para-um:</p><p>Uma associação unidirecional muito-para-um é o tipo mais comum de associação.</p><p><class name="Person"></p><p><id name="id" column="personId"><generator class="native"/></id></p><p><many-to-one name="address" column="addressId" not-null="true"/></p><p></class></p><p><class name="Address"></p><p><id name="id" column="addressId"><generator class="native"/></id></p><p></class></p><p>create table Person ( personId bigint not null primary key, addressId bigint not null )</p><p>create table Address ( addressId bigint not null primary key )</p><p>Um-para-um:</p><p>Uma associação unidirecional um-para-um com chave estrangeira é praticamente idêntica. A única diferença é a</p><p>restrição unique para a coluna.</p><p><class name="Person"></p><p><id name="id" column="personId"><generator class="native"/></id></p><p><many-to-one name="address" column="addressId" unique="true" not-null="true"/></p><p></class></p><p><class name="Address"></p><p><id name="id" column="addressId"><generator class="native"/></id></p><p></class></p><p>create table Person ( personId bigint not null primary key, addressId bigint not null unique )</p><p>create table Address ( addressId bigint not null primary key )</p><p>Já uma associação unidirecional um-para-um com chave primária usualmente emprega um gerador de id. Neste</p><p>exemplo, entretanto, nos revertemos a direção da associação.</p><p><class name="Person"></p><p><id name="id" column="personId"><generator class="native"/></id></p><p></class></p><p><class name="Address"></p><p><id name="id" column="personId"></p><p><generator class="foreign"></p><p><param name="property">person</param></p><p></generator></p><p></id></p><p><one-to-one name="person" constrained="true"/></p><p></class></p><p>create table Person ( personId bigint not null primary key )</p><p>create table Address ( personId bigint not null primary key )</p><p>Associações Unidirecionais com Join Tables</p><p>Um-para-muitos</p><p>Uma associação de um-para-muitos com uma join table é a opção preferida. Especificando unique="true",</p><p>mudamos a multiplicidade de muitos-para-muitos passando a ser de um-para-muitos.</p><p><class name="Person"></p><p><id name="id" column="personId"></p><p><generator class="native"/></p><p></id></p><p><set name="addresses" table="PersonAddress"></p><p><key column="personId"/></p><p><many-to-many column="addressId" unique="true" class="Address"/></p><p></set></p><p></class></p><p><class name="Address"></p><p><id name="id" column="addressId"></p><p><generator class="native"/></p><p></id></p><p></class></p><p>create table Person ( personId bigint not null primary key )</p><p>create table PersonAddress ( personId not null, addressId bigint not null primary key )</p><p>create table Address ( addressId bigint not null primary key )</p><p>Muitos-para-um</p><p>Uma associação de muitos-para-um com join table é comum quando a associação é opcional.</p><p><class name="Person"></p><p><id name="id" column="personId"></p><p><generator class="native"/></p><p></id></p><p><join table="PersonAddress"</p><p>optional="true"></p><p><key column="personId" unique="true"/></p><p><many-to-one name="address"</p><p>column="addressId"</p><p>not-null="true"/></p><p></join></p><p></class></p><p><class name="Address"></p><p><id name="id" column="addressId"></p><p><generator class="native"/></p><p></id></p><p></class></p><p>create table Person ( personId bigint not null primary key )</p><p>create table PersonAddress ( personId bigint not null primary key, addressId bigint not null )</p><p>create table Address ( addressId bigint not null primary key )</p><p>Muitos-para-muitos:</p><p>Finalmente um exemplo da associação unidirecional muitos-para-muitos.</p><p><class name="Person"></p><p><id name="id" column="personId"></p><p><generator class="native"/></p><p></id></p><p><set name="addresses" table="PersonAddress"></p><p><key column="personId"/></p><p><many-to-many column="addressId"</p><p>class="Address"/></p><p></set></p><p></class></p><p><class name="Address"></p><p><id name="id" column="addressId"></p><p><generator class="native"/></p><p></id></p><p></class></p><p>create table Person ( personId bigint not null primary key )</p><p>create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, addressId) )</p><p>create table Address ( addressId bigint not null primary key )</p>

Mais conteúdos dessa disciplina