Comentários para Colunas Chave Estrangeira
O comentário para coluna chave estrangeira
obedece a seguinte estrutura
<NOME_ATRIBUTO_JAVA>:<NOME_NA_TELA>:<OPERADOR_PESQUISA>:<CAMPO_MOSTRADO_NA_COMBO>:<TIPO_COMBO_OU_LUPA>:<REPORT>:<TABELA_AUTOCOMPLETE>,
em que:
- NOME_TABELA - é o nome da tabela no banco de dados;
- NOME_COLUNA - é o nome da coluna;
- NOME_ATRIBUTO_JAVA - é o nome que será usado como atributo no Java;
- NOME_NA_TELA - é o nome que será apresentado nas telas do Sistema;
- OPERADOR_PESQUISA - é o operador de pesquisa desejado
- CAMPO_MOSTRADO_NA_COMBO - campo mostrado na combo
- TIPO_COMBO_OU_LUPA - deve ser informado o tipo de relacionamento com a tabela relacionada. Os valores podem ser combo ou lupa.
No exemplo mostrado abaixo é apresentado um tipo
combo gerado a partir do comentários
“projeto:Projeto:=:descricao:combo”.
Ilustração 9: Campo Gerado para Coluna Chave Estrangeira
Exemplo de Código Gerado
Uma vez criado o template, todos os códigos serão
gerados da mesma forma e sem erros, e qualquer alteração ou
evolução pode ser feita no template e isto permitirá que os novos
códigos gerados sigam o novo padrão. Abaixo é mostrado parte de um
código gerado.
package gov.tjpr.gen.entity;
import
gov.tjpr.entity.PersistableEntity;
import javax.persistence.*;
import java.text.Normalizer;
import java.util.Date;
@Entity
@Table(name="tbatividade",
schema="public")
@SequenceGenerator(name = "SEQUENCE",
sequenceName="public.tbatividade_idatividade_seq",
allocationSize=1)
public class Atividade implements
PersistableEntity<Integer>{
private static final long
serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "idprojeto")
private Projeto projeto;
@ManyToOne
@JoinColumn(name = "idrecurso")
private Recurso recurso;
@ManyToOne
@JoinColumn(name =
"idtipoatividade")
private TipoAtividade tipoAtividade;
@Column(name="data")
private Date data;
@Column(name="qtdhora")
private Double qtdHora;
@Column(name="descricao")
private String descricao;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,
generator="SEQUENCE")
@Column(name="idatividade")
private Integer id;
// GETTERS AND SETTERS
...
}
Quadro
3: Exemplo de Código Gerado a partir do Banco de Dados e Template
Considerações finais
Conclui-se que a geração de código permite
diminuir muito o tempo de desenvolvimento, melhorar a qualidade do
software, reservar tempo para atividades mais nobres e desafiadoras,
padronizar o código e diminuir a curva de conhecimento de novos
funcionários. Todos estes elementos contribuem para a diminuição
de custos e tempo de entregas de projetos dentro das empresas.
Um gerador de código customizado vai ao encontro
das tecnologias legadas e novas de uma grande empresa permitindo
independência em relação a um fornecedor, diminuindo os custos de
aquisição e treinamento caso fosse adquirido um gerador de mercado.
Além disso, a estrutura genérica de classes
apresentadas, são de livre acesso e sem custos, com funcionalidades
bem definidas que são suficientes para gerar códigos muito
sofisticados como apresentados neste trabalho.
Referências bibliográficas
AMBLER,
S.W. Mapping Objects to Relational
Databases. An AmbySoft Whitepaper. AmbySoft Inc. 1997.
Disponível em:
<http://www.agiledata.org/essays/mappingObjects.html>. Acesso
em: 24 abril 2012.
AMBLER,
Scott. Agile Modeling: Effective
Practices for eXtreme Programming and
the
Unified Process. WILEY
COMPUTER PUBLISHING, 2002.
HERRINGTON,
Jack. Code Generation in
Action. MANNING, 2003.
SCHVEPE,
CLAUDIO. GERADOR DE CÓDIGO JAVA A
PARTIR DE ARQUIVOS DO ORACLE FORMS 6I. 2006. Trabalho de
Conclusão de Curso de Ciência da Computação, Universidade
Regional de Blumenau, Blumenau. Disponível em:
<http://www.bc.furb.br/docs/MO/2008/330687_1_1.PDF>. Acesso em:
29 março 2012.
STEIL,
Rafael. Velocity template language:
aprenda a usar essa linguagem de templates para o Velocity. [S.l.],
2002. Disponível em:
<http://www.guj.com.br/Java.tutorial.artigo.26.1.guj>.
Acesso em: 31 março 2012.
http://geradorcodigojava.blogspot.com.br/2013/12/geradores-de-codigo-em-java-otimize-seu.html
http://geradorcodigojava.blogspot.com.br/2013/12/velocity-velocity-e-um-template-engine.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu_217.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu_5.html
http://geradorcodigojava.blogspot.com.br/2013/12/geradores-de-codigo-em-java-otimize-seu.html
http://geradorcodigojava.blogspot.com.br/2013/12/velocity-velocity-e-um-template-engine.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu_217.html
http://geradorcodigojava.blogspot.com.br/2014/01/geradores-de-codigo-em-java-otimize-seu_5.html