Delete numa instancia de tabela referenciada

Olá,

minha duvida eh o seguinte: eu tenho 2 tabelas no meu sistema: Project e Projecttype. Um project possui apenas um projecttype (N-1). Eu preciso fazer uma funcionalidade de deletar uma istancia da tabela projecttype, mas e se ele estiver sendo referenciada, como devo implementar isso e como devo informar ao usuário? (“Este item não pode ser deletado pois existe um projeto com este tipo”) Preciso fazer alguma constraint no banco? Estou usando o hibernate para mapeamento.

valeu

Amigo você pode ou dar a informação para o usuario dizendo que o registro esta atrelado a outros ou marcar a opção cascade na tabela do seu banco para que este registro ao ser excluido apague tb suas ligações.

Cara,

Dá para você utilizar um recurso chamado Cascade no delete daquele registro determinando isso na definição do relacionamento, procure no google , fiz uma busca rápida e achei isso, não sei se será de grande ajuda.

Procure:

http://forum.hibernate.org/viewtopic.php?t=968120&view=previous&sid=8b5b0b9b7d043d0e87719cd80ffc88b5

dá uma olhada na doc oficial do hibernate

http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#example-parentchild-cascades

o meu caso, na verdade é o contrario disso. Um exemplo abaixo:

*Project
±---------±---------±--------------+
| ID | name | projecttype |
±---------±---------±--------------+
| 1 | ProjA | 100 |
| 2 | ProjB | 100 |
| 3 | ProjC | 101 |
| 4 | ProjD | 100 |
±---------±---------±--------------+

*ProjectType
±---------±---------+
| ID | name |
±---------±---------+
| 100 | Type1 |
| 101 | Type2 |
| 102 | Type3 |
| | |
±---------±---------+

Neste exemplo, se eu deletar uma insancia de projecttype (102), não haverá problema pois não há nenhum project com este ID, mas se eu tentar deletar a instancia com ID (100) de projecttype, haverá uma exceção indicando que não posso deleta-la pois project esta usando este ID (100). Como fasso para resolver isso?

Cara,

Então, o próprio cascade resolve este problema, procure cascade=set null na internet e como se aplica a hibernate.