Java EnityManager查询返回一个奇怪的不可访问对象

Java EnityManager查询返回一个奇怪的不可访问对象,java,hibernate,entity,entitymanager,hibernate-entitymanager,Java,Hibernate,Entity,Entitymanager,Hibernate Entitymanager,我有两个实体通过连接注释连接起来,除了奇怪的查询结果外,其他一切都正常 所以我让这个班说猫,另一个班说家。因此,如果我执行类Cat的命名查询,我希望它的属性Cat.home将由表home中的查询结果填充 我以这种方式执行查询: List<Cat> a = (List<Cat>) em.createNamedQuery("Cat.findHome") .setParameter("catName", catName) .set

我有两个实体通过连接注释连接起来,除了奇怪的查询结果外,其他一切都正常

所以我让这个班说猫,另一个班说家。因此,如果我执行类Cat的命名查询,我希望它的属性Cat.home将由表home中的查询结果填充

我以这种方式执行查询:

List<Cat> a = (List<Cat>) em.createNamedQuery("Cat.findHome")
            .setParameter("catName", catName)
            .setParameter("houseKey", houseKey).getResultList();

提前谢谢

选择
零件添加到命名查询

 query="select a from Cat a where a.name = :catName and a.home.houseKey like :houseKey")

选择
零件添加到命名查询

 query="select a from Cat a where a.name = :catName and a.home.houseKey like :houseKey")

很明显,你会期待一个猫的列表。命名查询的外观如何?请用它+实体对象更新您的问题。用实体和类CatWell中的命名查询更新后,您可能会看到一个
Cat
s列表。命名查询的外观如何?请用它+实体对象更新您的问题。用实体和类中的命名查询更新。很抱歉,我以前删除的问题。这似乎确实是正确的答案。@MagnusTengdahl我更新了查询。现在没有
join
in
from
几乎可以工作。这意味着它正确返回对象列表,但Cat.house属性似乎不包含它应该包含的内容。我正在调试这个,然后我会回复更多信息。就是这样。我真不敢相信我花了大约3个小时试图弄明白这一点,这是一件如此简单的事情。很抱歉我以前删除的问题。这似乎确实是正确的答案。@MagnusTengdahl我更新了查询。现在没有
join
in
from
几乎可以工作。这意味着它正确返回对象列表,但Cat.house属性似乎不包含它应该包含的内容。我正在调试这个,然后我会回复更多信息。就是这样。我不敢相信我花了大约3个小时试图弄明白这一点,这是一件如此简单的事情。
   @Entity
@Table(name="HOME")
public class Home implements Serializable{

    private static final long serialVersionUID = 1L;

private Sting housekey;
private Cat cat;

/**
 * @param housekey the housekey to set
 */
public void setHousekey(String housekey) {
    this.housekey = housekey;
}

/**
 * @return the housekey
 */
@Id
@Column(name="K_HOME")
public String getHousekey(){
    return housekey;
}

/**
 * @param cat the cat to set
 */
public void setCat(Cat cat) {
    this.cat = cat;
}

/**
 * @return the cat
 */
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "K_CAT_HOME", updatable=false, insertable=false)
public Cat getCat() {
        return cat;
    }
}
 query="select a from Cat a where a.name = :catName and a.home.houseKey like :houseKey")