segunda-feira, 18 de julho de 2011

Validação de Constraint com ADF

Como validar uma constraint com o ADF, apenas customizando uma classe.
Primeiro vamos criar um tabela no banco.
CREATE TABLE "MARTINS"."MESSAGETABLE"
  (
    "ID"            NUMBER(8,0) NOT NULL ENABLE,
    "MESSAGE_ERROR" VARCHAR2(50 BYTE) NOT NULL ENABLE,
    CONSTRAINT "MESSAGETABLE_PK" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM" ENABLE
  )
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE
  (
    INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
  )
  TABLESPACE "SYSTEM" ;

O código acima, foi gerado a partir da ferramenta SQL Developer, as unicas configurações a serem realizadas é colocar o ID como chave primária e a messagem como valor único.
A arvore de diretórios deverá ficar parecida com essa:

Clique com o botão direito sobre o projeto ValidaMSGError-> Project Properties-> Business Components. Na janela que abrirá clique em New...
 
vamos criar uma classe de validação de chaves. 
A classe criada não terá validação nenhuma. Vá até a base de dados e verifique o nome da constraint criada. Vide imagem abaixo.
 

Vamos utilizar o nome "MESSAGETABLE_UK1".
Na classe criada, coloque a seguinte Mensagem:


Salve o projeto.
Execute o seu aplication Module:
 
Tente cadastrar uma Mensagem que já existe. Um resultado parecido com este deverá ser exibido.