sexta-feira, 9 de novembro de 2012

Hibernate e campos timestamp

Ao pesquisar em um campo timestamp utilizando o criteria, a query não retorna nenhum registro caso as datas sejam iguais, ou não exibe os registro da data final.

Ex:

dataI  = 01/01/2012.
dataF = 01/01/2012.

c.add(Restrictions.between("insert_data", dataI, dataF));

Isso porque, a query está tentando localizar tudo que estiver entre 01/01/2012 00:00 e 01/01/2012 00:00. Porém, na tabela os registros estão armazenados com os horários (01/01/2012 10:15).

Para resolver esse problema, basta acrescentar um dia a data final.
Ex:

dataF.setDate(dataF.getDate() + 1);
c.add(Restrictions.between("insert_data", dataI, dataF));

Agora, a query irá procurar tudo que estiver entre 01/01/2012 00:00 e 02/01/2012 00:00.

quinta-feira, 1 de novembro de 2012

JSF: Inserir caractere em branco (espaço) dentro do h:outputText


<h:outputText value="#{processo.nref}   &#160;" />

quarta-feira, 24 de outubro de 2012

Selecionar último registro no Oracle


SELECT
  FOLLOWUP.POSICAOFLP_ID
FROM
  FOLLOWUP
WHERE
  FOLLOWUP.PROCESSO = '11850'
AND
     FOLLOWUP.ID = (SELECT MAX(FOLLOWUP.ID) FROM FOLLOWUP WHERE FOLLOWUP.PROCESSO = '11850')  

terça-feira, 23 de outubro de 2012

Descobrir qual/se propriedade do bean foi alterada



public class MyBean {
    private Long id;
    private String nome;
    private String campo2;
    public String getCampo2() {
        return campo2;
    }
    public void setCampo2(String campo2) {
        this.campo2 = campo2;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
}



public class Main {
 
    public static void main(String[] args) {
        MyBean bean1 = new MyBean();
         
        bean1.setId(new Long(1));
        bean1.setNome("MyBean name");
        bean1.setCampo2("MyBean campo2");
         
        MyBean bean2 = new MyBean();
         
        bean2.setId(new Long(1));
        bean2.setNome("MyBean nam2e");
        bean2.setCampo2("MyBean campo2");
 
        Field f[] = bean1.getClass().getDeclaredFields();
         
        for (int i = 0; i < f.length; i++) {
            Field field = f[i];
             
            BeanComparator bc = new BeanComparator(field.getName());
            int result = bc.compare(bean1, bean2);
             
            System.out.println("["+field.getName()+"]: "+result);
             
        }
    }

Se o resultado for diferente de 0, as propriedades são diferentes, com isso, sei quais campos foram alterados.

Fonte: http://javafree.uol.com.br/topic-11702-Descobrir-qual-propriedade-do-bean-foi-alterada.html

quinta-feira, 18 de outubro de 2012

Função SKIP Firebird

A função SKIP permite ignorar/saltar N registros para sem seguida retornar o restante.

Em conjunto com a função FIRST é possível ignorar N registros e retornar N registos. Ex: Ignorar os cinco primeiros registros e exibir os dois registros após os cinco ignorados.

Retorna apenas o primeiro usuário:

   SELECT FIRST 1
     nome
   FROM
     usuario
   ORDER BY
     nome

Retorna apenas o segundo usuário:

   SELECT FIRST 1 SKIP 1
     nome
   FROM
     usuario
   ORDER BY
     nome

Ignora os 5 primeiros usuários e retorna o restante:

   SELECT SKIP 5
     nome
   FROM
     usuario
   ORDER BY
     nome

quarta-feira, 26 de setembro de 2012

Efetuando cálculos de porcentagem em Java

Efetuando cálculos de porcentagem em Java

Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Java.

Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas.

Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Java:
public class Estudos{
  public static void main(String args[]){
    double valor = 178.00; // valor original
    double percentual = 15.0 / 100.0; // 15%
    double valor_final = valor + (percentual * valor);

    System.out.println("O valor final do produto é: " +
      valor_final);   

    // O resultado será 204,70

    System.exit(0);
  }
} 
Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Java:
public class Estudos{
  public static void main(String args[]){
    double valor = 250.00; // valor original
    double percentual = 8.0 / 100.0; // 8%
    double valor_final = valor - (percentual * valor);

    System.out.println("O valor final do produto é: " +
      valor_final);   

    // O resultado será 230,00

    System.exit(0);
  }
} 

Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Java:
public class Estudos{
  public static void main(String args[]){
    double perguntas = 90.0;
    double acertos = 72.0;

    System.out.println("Porcentagem de acertos: " +
      ((acertos / perguntas) * 100) + "%");

    System.out.println("Porcentagem de erros: " +
      (((perguntas - acertos) / perguntas) * 100) + "%");   

    // Os resultados serão 80% e 20%

    System.exit(0);
  }
}

Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 240,00. Qual foi a porcentagem de lucro na transação? Veja o código em Java:
public class Estudos{
  public static void main(String args[]){
    double v_ant = 300.0; // valor anterior
    double v_nov = 340.0; // valor novo
    double p_lucro = 0.0; // porcentagem de lucro

    while(v_ant + ((p_lucro / 100.0) * v_ant) < v_nov){
      p_lucro = p_lucro + 0.1;
    } 

    System.out.println("A porcentagem de lucro foi de: " +
      p_lucro + "%");   

    // O resultado será 13,39

    System.exit(0);
  }
} 

Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Java:
public class Estudos{
  public static void main(String args[]){
    double valor = 70.0; // valor do produto
    double porcent = 5.0 / 100.0; // 5%  

    double comissao = porcent * valor;

    System.out.println("O valor repassado ao vendedor e: " +
      comissao); 

    // O resultado será 3,5

    System.exit(0);
  }
}

Fonte: http://www.arquivodecodigos.net/dicas/java-efetuando-calculos-de-porcentagem-em-java-1221.html

terça-feira, 25 de setembro de 2012

iReport/JasperReports 4.7.1 + Hibernate 4.7.1 java.lang.NoSuchFieldError: BOOLEAN


Solution (Testado)


Solution is very simple.
1) Download the whole (with source) jasper tar.gz file from JasperReports home site
2) Untar the file (let the location be called $JASPER_SOURCE)
3) vim $JASPER_SOURCE/src/net/sf/jasperreports/engine/query/JRHibernateQueryExecuter.java
4) Add the following line in the top import statements
import org.hibernate.type.StandardBasicTypes;
5) Now from line 71 onwards change all "Hibernate" to "StandardBasicTypes" (till the end of the static block, that is till 84th line)
6) Save and exit the editor
7) Copy the latest hibernate3.jar (3.6.x version) into "$JASPER_SOURCE/lib" location
8) Now do the following ant command from $JASPER_SOURCE location
ant jar
You will get the modified jar in lib/jasperreports-4.x.x.jar location. Use that jar for your project
--------------- OR ------------------- 
(Não testado)
Another solution is to use old hibernate3.jar file (version 3.0.x) with your project