Sexo do Cônjuge

E eis que nesse nosso mundo moderno, com uma constante mudança de pensamentos e de ideias, me deparo com o seguinte problema ao dar manutenção num sistema não tão legado assim…

Uma tela para cadastrar Devedores, onde abaixo temos uma aba com Dados Pessoais, e entre estes, os Dados do Cônjuge.

No método save() deste formulário, encontro a seguinte lógica:

	public void save() {
		try {
			[...]
						
			getDevedor().getConjuge().setSexo(getDevedor().getSexo().getOposto());
			
			[...]
			
			setContrato(contratoService.save(getContrato()));
			FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Registro salvo!", null);
			FacesContext.getCurrentInstance().addMessage(null, msg);
		} catch (Exception e) { 
			FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Ocorreu um erro ao processar.", null);
			FacesContext.getCurrentInstance().addMessage(null, msg);
			logger.error(e.getMessage(), e);
		}
	}

o outro método dentro da Enum…

	public Sexo getOposto() {
		return this == Sexo.MASCULINO ? Sexo.FEMININO : Sexo.MASCULINO;
	}

“Bug aberto, bug corrigido.” Criado o campo “Sexo Cônjuge” na aba “Dados Pessoais” e removida esta lógica.

Acredito que muitos sistemas atualmente precisem desta “correção”.

Coisas dos tempos modernos…
aeuihaeiuaeiea

Adicionaria ainda uma relação de 1:N (uma pessoa vários cônjuges) :smiley:

Coisas dos tempos modernos… ++

[quote=Markus Alemao]Adicionaria ainda uma relação de 1:N (uma pessoa vários cônjuges) :smiley:

Coisas dos tempos modernos… ++
[/quote]

Melhor mapear N:N direto…