如何在谷歌应用引擎中获取父类中的孩子记录?

时间:2012-04-23 11:46:05

标签: google-app-engine jdo

我正在使用Google应用引擎在一个Gwt项目和后端工作。我的要求是从Google应用引擎中的父类中获取子表的记录。 我有两个服务器端Persistent类 1)水果 2)Apple

Fruit class就像这样

@PersistenceCapable(identityType = IdentityType.APPLICATION,table =“fruit”) 公共类Fruit实现Serializable {

private static final long serialVersionUID = 2523048232286090409L;

public Fruit() {}

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;


@Column(name="apple_id")
@Persistent(column="id")
private Apple apple;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public Apple getApple() {
    return apple;
}

public void setApple(Apple apple) {
    this.apple = apple;
}

}

类Apple就像这样

@PersistenceCapable(identityType = IdentityType.APPLICATION,table =“apple”) 公共类Apple {

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;

@Persistent
private String colour;

public Apple() {}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getColour(){
    return this.colour;
}

public String setColour(String colour){
    this.colour = colour;
}

}

现在我想通过查询水果来获得颜色名称。

在daoImpl类中的

我有用于获取数据的构建方法

fetchFruit(){

    Query query = pm.newQuery(Fruit.class);
    List<Fruit> list=null;
    try{        
        list = (List<Fruit>) query.execute();

    }finally{
        pm.close();
    }
}

在我的serviceImpl类中,我已经这样做了

private static FruitDAO fruitDAO = new FruitDAO();

    List<Fruit> fruitObj = fruitDAO.fetchFruit();


 for(Fruit fruit : fruitObj){
            FruitDTO dto = new fruitDTO();

            dto.setId(fruit.getId());               
            dto.setAppple(fruit.getApple());
    }

我在fruit.getApple()

上得到null

我的问题是我是否正确的方式,如果没有,那么它是如何可能的? 如何通过查询水果获得颜色名称。 什么其他方式来查询水果?

请帮帮我。 提前谢谢。

0 个答案:

没有答案