Propriedades de javabeans sem atributo private

Nesse código abaixo, não existe o atributo idPost. Os valores do get e set são passados para getId() e setId(). Mas no hiberante, foi referenciado a propriedade IdPost.
a) IdPost é uma propriedade que é entendida pelo hibernate mesmo que não exista o atributo privado IdPost?
b) Isso é padrão do javabean? Não existe a necessidade do atributo privado?

[code] public Long getIdPost() {
return getId();
}

/**
 * @param idPost
 */
public void setIdPost(Long idPost) {
    this.setId(idPost);
}[/code]

Pra algum lugar o valor esta indo. O que o setId() faz?

Rafael

Eu sei que está indo para algum lugar. Mas quero saber se isso é compatível com o padrão javabean. Eu pensava que era obrigatório ter o atributo private.
Só o fato de ter o getXxx e o SetXxx já quer que existe a propriedade Xxx? não é obrigatório ter o private xxxx não?

o padrão nada mais é que uma convenção.
não é obrigatorio.

[]'s

E o Hibernate trabalha sem getter e setters também, alterando o modificador de acesso em runtime.

Legal,
então o hibernate não exige um javabean.

Acabei de ver na especificação do javabean, que o que define um propriedade é o getXxx e o setXxxx. Ou seja, não interessa se existe um atributo privado com o nome da propriedade.

[quote]8.3.1 Simple properties
By default, we use design patterns to locate properties by looking for methods of the form:
public < PropertyType> get< PropertyName>();
public void set< PropertyName>(< PropertyType> a);
If we discover a matching pair of “get” and “set” methods
that take and return the same type, then we regard these methods as defining a read-write property
whose name will be “”. We will use the “get” method
to get the property value and the “set” method to set the property value. The
pair of methods may be located either in the same class or one may be in a base class and the
other may be in a derived class.
If we find only one of these methods, then we regard it as defining either a read-only or a writeonly
property called “”[/quote]

É, tambem acho.

Mas como você é um bom programador e segue todas as boas praticas de programação é claro que voce vai implementar encapsulamento, polimorfismo e por ai vai!! :wink:

normalmente eu utilizo o que resolve o meu problema da maneira mais simples possivel.
isso não depende de padrões, mas de bom senso…

como disse, um padrão é uma convenção, e não uma regra rigida, vc pode altera-lo p/ satisfazer suas necessidades da melhor maneira.
claro que sempre com cuidado…

[]'s