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

Posted

技术标签:

【中文标题】使用休眠仅从对象中的表中获取选定的列【英文标题】:Get only selected columns from table in object using hibernate 【发布时间】:2014-05-09 17:05:00 【问题描述】:

我正在使用休眠进行数据库通信。我有一堂课:

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

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

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

... <other filed similarly>


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

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

知道如何使用休眠查询/条件来解决这个问题吗?

谢谢

【问题讨论】:

是您要找的吗:***.com/q/11626761/1292605? 【参考方案1】:

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

假设您有两个实体:Person 和 Address。

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

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

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

... <other filed similarly>


另一方面,您有 Address 类

@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 ;

这应该返回与人映射的地址;并且某些列的显示将由您选择,因为这里的休眠返回整个对象。

【讨论】:

以上是关于使用休眠仅从对象中的表中获取选定的列的主要内容,如果未能解决你的问题,请参考以下文章

SQL - 仅从表中获取并非所有值都是空值的列

使用 Spring Jpa 从两个或多个表中获取选定的列

使用休眠获得更少的列

如何从存储过程的表中的列中获取输出参数

在 HTML 表中获取整个选定的列值

休眠从对象中延迟获取嵌套列表