1

@Formulaエンティティの 1 つに注釈を付けて計算プロパティを作成しました。

@Entity
@Table(name="PERSON")
public class Person {

    @Searchable(name = "First name")
    private String firstName;

    @Column(name = "FIRST_NAME", nullable=false)
    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    @Searchable(name = "Last name")
    private String lastName;

    @Column(name = "LAST_NAME", nullable=false)
    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @Formula("FIRST_NAME || ' ' || LAST_NAME")
    private String loFstLstName;

    public String getLoFstLstName() {
        return this.loFstLstName;
    }

    public void setLoFstLstName(String loFstLstName) {
        this.loFstLstName = loFstLstName;
    }
}

persons問題は、次のコードのリストにnull しかないことです。

Query q = entityManager.createQuery("SELECT loFstLstName FROM Person");
List persons = q.getResultList();

PERSONFIRST_NAMEtable には、およびLAST_NAMEフィールドに null とは異なる値を持つレコードが含まれています。PostgreSQL 8.4.9 で Hibernate 3.3 を使用しています。私は何を間違っていますか?

4

1 に答える 1

2

同じエンティティ内で異なるアクセスタイプ(つまり、プロパティとフィールドへの注釈の配置)を混在させないでください(明示的に設定しない限り@Access)。次のことを試してください。

@Formula("FIRST_NAME || ' ' || LAST_NAME") 
public String getLoFstLstName() {
    return this.loFstLstName;
} 
于 2012-09-06T09:40:16.797 に答える