当前位置: 首页 > 知识库问答 >
问题:

使用hibernate仅从对象中的表中获取选定列

西门安民
2023-03-14

我使用hibernate进行数据库通信。我有一个类:

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

@Column(name="name")
private String name;

@OneToMany
@JoinColumn(name="Address_id)
private Set<Address> address;

... <other filed similarly>

}

现在我想用它的主键来获取这个对象,但是这个对象应该只有特定的列?

我尝试使用标准和投影,它返回一个结果,但它没有映射到我期望的对象(Person Object)

任何想法如何解决这个问题使用Hibernate查询/标准?

谢谢

共有1个答案

袁鹤轩
2023-03-14

使用的hibernate注释必须正确编写。

假设你有两个实体:个人和地址。

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

@Column(name="name")
private String name;

@OneToMany
@JoinColumn(name="Address_id")
private Set<Address> address;

... <other filed similarly>

}

另一方面,你有地址类

@Table(name="addresses")
public class Address{

@Column(name="name")
private String addressName;
@ManyToOne
private Person person;

}

在使用以下方法时使用此映射:

 public Encounter getAddressById(int idAddress) {
    session = sf.getCurrentSession();
    session.beginTransaction();

  Address address = (Address ) session.load(Address .class, idAddress);

    return address ;
}

这应该返回与人一起映射的地址;一些列的显示将由您选择,因为Hibernate在这里返回了整个对象。

 类似资料:
  • 首先,我有这个“用户”模型 而这种“用户详细信息”模型 我试图从user_details模型中只获取特定的列(user_details[外键=user_id]模型与用户[主键/引用键=user_id]模型有关系) 但不幸的是,不幸的是,没有工作,我得到了这个错误(参考下面) 查询onnection.php第624行中的异常: SQLSTATE[42S22]:找不到列: 1054字段列表中的未知列u

  • 问题内容: 我正在尝试使用BeautifulSoup提取此数据表的第一和第三列。通过查看HTML,第一列具有一个标记。感兴趣的另一列具有作为标记。无论如何,我所能获得的就是带有标签的列的列表。但是,我只想要文本。 已经是列表,所以我不能使用。我不确定如何以另一种形式获得第一列的清单。 问题答案: 您可以尝试以下代码: 如您所见,代码只是连接到url并获取html,BeautifulSoup找到第一

  • 我有三个表User、UserRole(联接表)和Role。我需要从角色表中获取条件库中的名称。我有sql查询,这是工作在这个场景,但想尝试使用条件。 这将返回部分对象firstname和lastname,我稍后可以将它们用作fullname。

  • 我应该如何删除列表中所有不符合条件的子对象并获得新的列表。

  • 问题内容: 通常,我使用它来返回所选选项的值,但这一次它不起作用。所选标签的ID HTML代码 问题答案: 对于下拉选项,您可能想要这样的东西: 之所以不能解决问题,是因为单击选项不会更改下拉菜单的值,它只是将属性添加到作为下拉菜单的 子 项的所选选项中。

  • 我在Netbeans构建了一个Java项目。我有一个表单,表单内部有一个jList,其中填充了一个对象(Favorite)。我也有一个按钮,我想当我按下按钮删除选定的项目在jList。 我正在尝试以下代码,但我得到一个错误。 我得到以下错误: 线程“AWT-EventQueue-0”中出现异常Java . lang . classcastexception:Java . lang . string