Java 如何在Hibernate中仅从嵌套数组获取ID?
我在从Hibernate中嵌套集合中的对象获取唯一ID时遇到问题 这是我的密码:Java 如何在Hibernate中仅从嵌套数组获取ID?,java,json,hibernate,hibernate-mapping,hibernate-criteria,Java,Json,Hibernate,Hibernate Mapping,Hibernate Criteria,我在从Hibernate中嵌套集合中的对象获取唯一ID时遇到问题 这是我的密码: public class Company { private int id; private Set<Account> owners = new HashSet<Account>(); @Id public int getId() { return id; } public void setId(String id) {
public class Company {
private int id;
private Set<Account> owners = new HashSet<Account>();
@Id
public int getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.LAZY, targetEntity = Account.class)
@Fetch(org.hibernate.annotations.FetchMode.JOIN)
@JoinTable(
name = "company_accountOwners",
joinColumns = @JoinColumn(name = "company_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "account_id", referencedColumnName = "id")
)
public Set<Account> getOwners() {
return owners;
}
public void setOwners(Set<Account> owners) {
this.owners = owners;
}
如何仅获取包含所有Company.class数据和所有者数组(Account.class)的JSON,这些所有者数组只有ID,没有所有其他属性(名称、年龄)?
我一片漆黑
我现在明白了:
{
"id": 1,
"owners": [
{
"id": "testID",
"name": "name",
"age": 45
},
{
"id": "testID2",
"name": "name2",
"age": 90
}]
}
我想要像这样的json:
{
"id": 1,
"owners": [
{
"id": "testID"
},
{
"id": "testID2"
}]
}
我只获得了所有者ID的数组,但无法使用它获得整个父类<代码>公司列表=(ArrayList)会话.createCriteria(Company.class).createAlias(“所有者”,“所有者别名”).setProjection(Projections.projectionList().add(Projections.property(“所有者别名.id”).as(“id”)).list()代码>我只获得了所有者ID的数组,但我不能用它获得整个父类<代码>公司列表=(ArrayList)会话.createCriteria(Company.class).createAlias(“所有者”,“所有者别名”).setProjection(Projections.projectionList().add(Projections.property(“所有者别名.id”).as(“id”)).list()代码>
{
"id": 1,
"owners": [
{
"id": "testID"
},
{
"id": "testID2"
}]
}