Hi!
I am looking for your help, If you guide me surely i can solve the issue.
In one of my project table A (USER) using @ManyToOne relationship with table B (AccessType) , The table B having @ManyToMany relationship with table C (Role).
The issue is if i load the the table (USER), it list down all the property. But insted of showing (AccessType), it showing all the details about it’s child table (Role) too.
Table (A)
@Entity
@Table(name = "QPUSERS")
public class QPUsers implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "QPUSERID")
private long qpUserId;
@Column(name = "USERNAME")
private String username;
@Column(name = "USERTITLE")
private String userTitle;
@Column(name = "STAFFNUMBER")
private String staffNumber;
@Column(name = "WINDOWSACC")
private String windowsAccount;
@Column(name = "REFERENCEINDICATOR")
private String referenceIndicator;
@Column(name = "EMAIL")
private String email;
@Column(name = "TELEPHONE")
private String telephone;
@Column(name = "ISQPUSER")
private int isQPUser;
@Column(name = "ISDefault")
private int isDefault;
@ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH })
@JoinColumn(name = "departmentId", referencedColumnName = "departmentId", insertable = true, updatable = true)
private Departments departments;
@ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH })
@JoinColumn(name = "userRoleId", referencedColumnName = "userRoleId", insertable = true, updatable = true)
private UserRole userRole;
@ManyToOne(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH })
@JoinColumn(name = "contractorId", referencedColumnName = "contractorId", insertable = true, updatable = true)
private Contractor contractor;
@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.DETACH })
@JoinColumn(name = "accessTypeId", referencedColumnName = "accessTypeId", insertable = true, updatable = true)
private AccessType accessType;
@Column(name = "ASTATUS")
private String astatus;
@CreationTimestamp
@Column(name = "CRD", nullable = false, updatable = false)
private Date crdDateTime;
@UpdateTimestamp
@Column(name = "UPD", nullable = false, updatable = true)
private Date lstUpdtDateTime;
public QPUsers() {
super();
}
Table (B)
@Entity
@Table(name = "ACCESSTYPE")
public class AccessType implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ACCESSTYPEID")
private long accessTypeId;
@Column(name = "ACCESSTYPECODE")
private String accessTypeCode;
@Column(name = "ACCESSTYPETNAME")
private String accessTypeTname;
@Column(name = "ACCESSINFO")
private String accessIfo;
@ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.DETACH })
@JoinTable(name = "JOIN_ACCESSTYPE_USERROLES", joinColumns = {
@JoinColumn(referencedColumnName = "accessTypeId") }, inverseJoinColumns = {
@JoinColumn(referencedColumnName = "userRoleId") })
private List<UserRole> userRole;
@Column(name = "ASTATUS")
private String astatus;
@CreationTimestamp
@Column(name = "CRD", nullable = false, updatable = false)
Date crdDateTime;
@UpdateTimestamp
@Column(name = "UPD", nullable = false, updatable = true)
Date lstUpdtDateTime;
public AccessType() {
super();
}
Table ©
@Entity
@Table(name = "USERROLES")
public class UserRole implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "USERROLEID")
private long userRoleId;
@Column(name = "ROLECODE")
private String roleCode;
@Column(name = "ROLENAME")
private String roleName;
@Column(name = "ROLEINFO")
private String roleInfo;
@Column(name = "ISGRANTPERMISSION")
private int isGrantPermission;
@Column(name = "ASTATUS")
private String astatus;
@CreationTimestamp
@Column(name = "CRD", nullable = false, updatable = false)
private Date crdDateTime;
@UpdateTimestamp
@Column(name = "UPD", nullable = false, updatable = true)
private Date lstUpdtDateTime;
public UserRole() {
super();
}
The Result is
{
"resp_status": true,
"resp_code": null,
"resp_message": "Success",
"rest_name": "QP_USERS",
"response": [
{
"qpUserId": 6,
"username": "Test User Two",
"userTitle": "Mr.",
"staffNumber": "4585",
"windowsAccount": "98552",
"referenceIndicator": "MA",
"email": "test@gmail.com",
"telephone": "48622455862",
"isQPUser": 1,
"isDefault": 0,
"departments": {
"departmentId": 8,
"departmentCode": "HR",
"departmentName": "Human resource",
"departmentInfo": null,
"astatus": "true",
"crdDateTime": "2020-03-09T22:20:11.000+0000",
"lstUpdtDateTime": "2020-03-09T22:20:11.000+0000",
"handler": {},
"hibernateLazyInitializer": {}
},
"userRole": {
"userRoleId": 1,
"roleCode": "ADMIN",
"roleName": "User Admin",
"roleInfo": null,
"isGrantPermission": 1,
"astatus": "true",
"crdDateTime": "2020-03-09T22:14:16.000+0000",
"lstUpdtDateTime": "2020-03-09T22:14:16.000+0000",
"handler": {},
"hibernateLazyInitializer": {}
},
"contractor": null,
"accessType": {
"accessTypeId": 7,
"accessTypeCode": "AC 3",
"accessTypeTname": "Access Three",
"accessIfo": null,
"userRole": [
{
"userRoleId": 2,
"roleCode": "DC",
"roleName": "Document Controller",
"roleInfo": null,
"isGrantPermission": 0,
"astatus": "true",
"crdDateTime": "2020-03-09T22:14:41.000+0000",
"lstUpdtDateTime": "2020-03-09T22:14:41.000+0000"
},
{
"userRoleId": 3,
"roleCode": "SU",
"roleName": "Super User",
"roleInfo": null,
"isGrantPermission": 0,
"astatus": "true",
"crdDateTime": "2020-03-09T22:15:01.000+0000",
"lstUpdtDateTime": "2020-03-09T22:15:01.000+0000"
}
],
"astatus": "true",
"crdDateTime": "2020-03-09T22:16:22.000+0000",
"lstUpdtDateTime": "2020-03-09T22:16:22.000+0000"
},
"astatus": "true",
"crdDateTime": "2020-03-11T13:24:34.000+0000",
"lstUpdtDateTime": "2020-03-11T13:24:34.000+0000"
}
]
}
What i need, i don’t want to load the Role details under AccessType
Thanks
Raj