Hibernate @ManyToMany lading parent data along with child collection

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