Como han mencionado otros, si anota un método getter de propiedad, entonces Hibernate usa el setter cuando lee valores de la base de datos. Básicamente, Hibernate supone que todo lo que está escribiendo en la base de datos necesitará leerse en la base de datos. Esto implica que si anota un getter, entonces necesita llamar a un setter cuando lee el objeto de la base de datos.
Puede hacer que el colocador sea privado (Hibernate usará la reflexión para acceder al colocador). Esta es una gran manera de preservar el contrato de su clase mientras sigue usando Hibernate para el mapeo relacional.
Si el campo se deriva de otras propiedades de la clase, ¿por qué lo está almacenando en la base de datos? Puede usar la anotación @Transient
para marcar el campo que no debe almacenarse en la base de datos. Incluso puede usar la anotación @Formula
para que Hibernate obtenga el campo por usted (lo hace mediante el uso de la fórmula en la consulta que envía a la base de datos).
objetos del modelo Justo Autogenerar. Eclipse, Dali y/o Hibernatetools pueden hacer esto con unos pocos clics. No es necesario dedicar horas a escribir getters/setters ni preocuparse por su corrección y presencia. – BalusC