使用休眠仅从对象中的表中获取选定的列
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 ;
这应该返回与人映射的地址;并且某些列的显示将由您选择,因为这里的休眠返回整个对象。
【讨论】:
以上是关于使用休眠仅从对象中的表中获取选定的列的主要内容,如果未能解决你的问题,请参考以下文章