![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: JPA - Java Persistence Architecture API - Arquitetura de Persistência Java ::: Dicas & Truques ::: Anotações JPA (JPA Annotations) |
Aprenda a usar a anotação @NamedQuery para definir queries nomeadas em suas aplicações JPAQuantidade de visualizações: 4511 vezes |
|
As queries nomeadas, ou named queries, são muito úteis na organização das queries de um determinado contexto de persistência. A anotação @NamedQuery é usada quando precisamos definir tais queries e é colocada na definição da classe para as entidades. As queries nomeadas complementam o trabalho realizado pelo método find() da interface EntityManager, usado para pesquisar e retornar uma entidade de acordo com o valor de sua chave primária. Veja o exemplo de uma querie nomeada usada para retornar todos os clientes cujos nomes possuam um determinado texto:
package entidades;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name="clientes")
@NamedQuery(name="Cliente.encontrarClientesNomeParcial", query="SELECT c FROM " +
"Cliente c WHERE c.nome LIKE :nomeCliente")
public class Cliente implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String nome;
private String email;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="data_cadastro")
private Date dataCadastro;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getDataCadastro() {
return dataCadastro;
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
}
Note que inclui a query nomeada antes da declaração da classe entidade Cliente. Veja-a novamente: @NamedQuery(name="Cliente.encontrarClientesNomeParcial", query="SELECT c FROM " + "Cliente c WHERE c.nome LIKE :nomeCliente") Como você pode ver, o nome da query é "Cliente.encontrarClientesNomeParcial" e ela encontra todos os clientes cujos nomes possuam um determinado texto (você conhece a cláusula LIKE do SQL, não?). É sempre interessante colocar o nome da entidade junto ao nome da query. Desta forma as chances de você ter queries nomeadas duplicadas no contexto de persistência são reduzidas. Veja agora como essa query pode ser chamada a partir da classe principal de uma aplicação JPA:
package estudosjpa;
import entidades.Cliente;
import java.util.List;
import javax.persistence.*;
public class EstudosJPA {
public static void main(String[] args) {
// vamos criar o EntityManagerFactory a partir do contexto de persistência
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("LocadoraService");
// vamos obter um objeto da interface EntityManager
EntityManager em = emf.createEntityManager();
// vamos obter os clientes que possuem a palavra "Ramos" em seus nomes
List<Cliente> clientes = em.createNamedQuery("Cliente.encontrarClientesNomeParcial",
Cliente.class).setParameter("nomeCliente", "%Ramos%").getResultList();
// vamos percorrer a lista de clientes retornados
for(Cliente c : clientes){
System.out.println("Nome: " + c.getNome());
}
em.close(); // fecha o EntityManager
emf.close(); // fecha o EntityManagerFactory
}
}
Veja que usamos o método createNamedQuery() da interface EntityManager para criar a query nomeada, fornecemos o parâmetro e definimos o retorno como uma lista. Ao executar o exemplo você terá um lista de objetos da classe Cliente que se encaixaram na pesquisa. |
|
|
Veja mais Dicas e truques de JPA - Java Persistence Architecture API - Arquitetura de Persistência Java |
Dicas e truques de outras linguagens |
|
wxWidgets - Como baixar, compilar a biblioteca e criar um projeto C++ wxWidgets usando o Visual Studio 2017 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |



