views:

123

answers:

1

I'm using hibernate 3.0 (with posgre 8.3), Java 1.6 and Netbeans 6.5. I've created one native query to return all the unique most recent entries like this:

String query = "SELECT DISTINCT ON (origem) * FROM entrada " +
                "ORDER BY origem, horadata DESC";
        SQLQuery sqlQuery = this.getSession().createSQLQuery(query);
        sqlQuery.addEntity(Entrada.class);
        List entradas = sqlQuery.list();

When the "sqlQuery.list()" is called the Entrada objects are returned as expected. But all public non-static methods in the object Entrada are called. I don't want this behavior, someone could help me? Thanks in advance.

+2  A: 

What are "all" public methods?

Getters and setters are called when hibernate creates the entitites and fills in the data from the database. Since Entity classes has to satisfy the java bean specification there shouldn't be any more public methods except hashCode(), toString()...

Timo
You're right, the get methods are called.I've created some methods in the entities to call other methods on the DAOs. I don't have experience using hibernate and java.
Ricardo
One another question!Where should I put the busssiness methods and another properties?
Ricardo
The entities should not have any business logic. Read the first 100 pages of the JPA spec! In my opinion business logic are part of a persistence layer. This layer provides business methodes and uses hibernate/jpa to do the OR-mapping.
Timo