Galera, estou com a seguinte dificuldade. Tenho minhas tabelas abaixo:
person 0xN address person 1x1 serviceProvider serviceProvider 1x1 corporation serviceProvider 1x1 individual
Sou novato em hibernate, essa é minha primeira aplicação com esse framework. E tenho algumas duvidas.
Então, tinha tentado uma abordagem para fazer os inserts por herança de classes, onde era Person(classe pai), ServiceProvider(classe filha) e Corporation ou Individual(classe neta).
Corporation corp = new Corporation();// o codigo não é exatamente assim, é somente uma explicação
corp.set......
IDao<Corporation> dao = new Dao<Corporation>();
//depois de todas as propriedades das classes acima setadas!
dao.save(corp);
//onde eu imaginei que o hibernate iria se virar fazendo os demais inserts(ServiceProvider e Person)
public void create(Person person, ServiceProvider serviceProvider, Corporation corporation, Address address){
this.session.save(address);
person.setAddress(address);
this.session.save(person);
serviceProvider.setPerson(person);
this.session.save(serviceProvider);
corporation.setServiceProvider(serviceProvider);
this.session.save(corporation);
}
public void update(Person person, ServiceProvider serviceProvider, Corporation corporation, Address address){
this.session.update(address);
this.session.update(person);
this.session.update(serviceProvider);
this.session.update(corporation);
}
public void delete(Person person){
this.session.delete(person);
}
@Get
@Path("/serviceProviderCorporation/{serviceProviderCorporation.id}")
public void show(Person serviceProviderCorporation){
Person person = this.dao.findById(serviceProviderCorporation.getId());
Address address = person.getAddress();
ServiceProvider serviceProvider = person.getServiceProvider();
Corporation corporation = person.getServiceProvider().getCorporation();
result.include("person", person)
.include("address", address)
.include("serviceProvider", serviceProvider)
.include("corporation", corporation);
}