【问题标题】: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>

}

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

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

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

谢谢

【问题讨论】:

标签: java sql hibernate


【解决方案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 ;
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多