2015-01-02 17 views
1

我有两个类,如下春季数据REST链接为一对多空的结果和多对多关系

@Entity 
@Table(name = "Employee", schema = "...", catalog = "...") 
public class EmployeeEntity implements Serializable, UserDetails { 

    @Id() 
    @Column(name = "EmployeeID", nullable = false, insertable = true, updatable = true, length = 20) 

    @Basic 
    @Column(name = "UserName", nullable = true, insertable = true, updatable = true, length = 20) 
    private String username; 


    @OneToMany 
    @JoinColumn(name="UserName")  
    private Set<EmployeesGroupsEntity> employeeGroups; 



//Getter and setters 
} 

@Entity 
@Table(name = "EmployeesGroups", schema = "...", catalog = "...") 
public class EmployeesGroupsEntity implements Serializable { 

    @Id 
    @Column(name = "UserName", nullable = false, insertable = true, updatable = true, length = 20) 
    private String username; 

    @Basic 
    @Column(name = "Group", nullable = false, insertable = true, updatable = true, length = 255)  
    private String groups; 

} 

现在,访问的对象,我有春天数据休息版本库下面

@RepositoryRestResource(collectionResourceRel = "Employee", path = "Employee") 
public interface IEmployeeRepository extends PagingAndSortingRepository<EmployeeEntity, String> { 

    EmployeeEntity getByUsername(String userName); 

    EmployeeEntity getByEmailAddress(String emailAddress); 
} 

@RepositoryRestResource(collectionResourceRel = "EmployeesGroups", path = "EmployeesGroups") 
public interface IEmployeesGroupsRepository extends PagingAndSortingRepository<EmployeesGroupsEntity,String> { 

} 

与上面的设置,我试图访问的URL

http://localhost:8080/Employee/12345 

,我顺利拿到了结果如下

{ 
    "employeeId" : "12345", 
    "username" : "firstx", 
    "_links" : { 
    "self" : { 
     "href" : "http://localhost:8080/Employee/12345" 
    }, 
    "employeeGroups" : { 
     "href" : "http://localhost:8080/Employee/12345/employeeGroups" 
    } 
    } 
} 

作为下一个步骤,当我访问URL

http://localhost:8080/Employee/12345/employeeGroups 

我得到的输出为

{ } 

随后,我还尝试了头文件“text/uri-list”。当我这样做时,我得到的响应码为204.

请帮我解决问题。

谢谢

+0

有什么不对的输出?如果你的员工没有任何组织分配,返回一个空的结果正是你所期望的,不是吗? –

+0

嗨奥利弗..虽然我有数据关联,employeeGroups链接返回的输出是空的。我怀疑是否有任何懒惰的初始化问题......但对于急切加载的配置更改也没有锻炼。 – rakpan

回答

3

放弃后..找到答案后绊倒另一个问题。

我不得不用注释RestResource(出口=真)的关系

@Entity 
@Table(name = "Employee", schema = "...", catalog = "...") 
public class EmployeeEntity implements Serializable, UserDetails { 

    @Id() 
    @Column(name = "EmployeeID", nullable = false, insertable = true, updatable = true, length = 20) 

    @Basic 
    @Column(name = "UserName", nullable = true, insertable = true, updatable = true, length = 20) 
    private String username; 


    @OneToMany 
    @RestResource(exported = true) 
    @JoinColumn(name="UserName")  
    private Set<EmployeesGroupsEntity> employeeGroups; 



//Getter and setters 
}