[jbosstools-issues] [JBoss JIRA] (JBIDE-26458) Import Entities from DB with ManyToMany relationships doesn't manage mappedBy

Matt B (Jira) issues at jboss.org
Thu Nov 8 09:47:00 EST 2018


     [ https://issues.jboss.org/browse/JBIDE-26458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matt B updated JBIDE-26458:
---------------------------
    Description: 
Import from entities tool does not correctly handle the bidirectional ManyToMany relationships because in some cases it does not define mappedBy on one side.

example:

{code:java}
public class SecGroup implements java.io.Serializable {
....
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
			@JoinColumn(name = "GroupId", nullable = false, updatable = false) }, inverseJoinColumns = {
					@JoinColumn(name = "UserId", nullable = false, updatable = false) })
	public Set<SsUsers> getSsUserses() {
		return this.ssUserses;
	}
....
}

public class SsUsers implements java.io.Serializable {
...
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
			@JoinColumn(name = "UserId", nullable = false, updatable = false) }, inverseJoinColumns = {
					@JoinColumn(name = "GroupId", nullable = false, updatable = false) })
	public Set<SecGroup> getSecGroups() {
		return this.secGroups;
	}
...
}
{code}

It must be for example

{code:java}
public class SecGroup implements java.io.Serializable {
....
	@ManyToMany(fetch = FetchType.LAZY, mappedBy = "secGroups")
	public Set<SsUsers> getSsUserses() {
		return this.ssUserses;
	}
....
}

public class SsUsers implements java.io.Serializable {
...
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
			@JoinColumn(name = "UserId", nullable = false, updatable = false) }, inverseJoinColumns = {
					@JoinColumn(name = "GroupId", nullable = false, updatable = false) })
	public Set<SecGroup> getSecGroups() {
		return this.secGroups;
	}
...
}
{code}


  was:
Import from entities tool does not correctly handle the bidirectional ManyToMany relationships because in some cases it does not define mappedBy on one side.

example:
public class SecGroup implements java.io.Serializable {
....
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
			@JoinColumn(name = "GroupId", nullable = false, updatable = false) }, inverseJoinColumns = {
					@JoinColumn(name = "UserId", nullable = false, updatable = false) })
	public Set<SsUsers> getSsUserses() {
		return this.ssUserses;
	}
....
}




public class SsUsers implements java.io.Serializable {
...
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
			@JoinColumn(name = "UserId", nullable = false, updatable = false) }, inverseJoinColumns = {
					@JoinColumn(name = "GroupId", nullable = false, updatable = false) })
	public Set<SecGroup> getSecGroups() {
		return this.secGroups;
	}
...
}

It must be for example

public class SecGroup implements java.io.Serializable {
....
	@ManyToMany(fetch = FetchType.LAZY, mappedBy = "secGroups")
	public Set<SsUsers> getSsUserses() {
		return this.ssUserses;
	}
....
}

public class SsUsers implements java.io.Serializable {
...
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
			@JoinColumn(name = "UserId", nullable = false, updatable = false) }, inverseJoinColumns = {
					@JoinColumn(name = "GroupId", nullable = false, updatable = false) })
	public Set<SecGroup> getSecGroups() {
		return this.secGroups;
	}
...
}




> Import Entities from DB with ManyToMany relationships doesn't manage mappedBy
> -----------------------------------------------------------------------------
>
>                 Key: JBIDE-26458
>                 URL: https://issues.jboss.org/browse/JBIDE-26458
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: hibernate
>    Affects Versions: 4.6.0.Final
>         Environment: Eclipse: Oxygen.3a Release (4.7.3a) Build id: 20180405-1200
> DBMS: Sql Anywhere 17.0.9.4857
> Annotations jdk 1.5+
> Hibernate Version 5.2
>            Reporter: Matt B
>            Priority: Major
>
> Import from entities tool does not correctly handle the bidirectional ManyToMany relationships because in some cases it does not define mappedBy on one side.
> example:
> {code:java}
> public class SecGroup implements java.io.Serializable {
> ....
> 	@ManyToMany(fetch = FetchType.LAZY)
> 	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
> 			@JoinColumn(name = "GroupId", nullable = false, updatable = false) }, inverseJoinColumns = {
> 					@JoinColumn(name = "UserId", nullable = false, updatable = false) })
> 	public Set<SsUsers> getSsUserses() {
> 		return this.ssUserses;
> 	}
> ....
> }
> public class SsUsers implements java.io.Serializable {
> ...
> 	@ManyToMany(fetch = FetchType.LAZY)
> 	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
> 			@JoinColumn(name = "UserId", nullable = false, updatable = false) }, inverseJoinColumns = {
> 					@JoinColumn(name = "GroupId", nullable = false, updatable = false) })
> 	public Set<SecGroup> getSecGroups() {
> 		return this.secGroups;
> 	}
> ...
> }
> {code}
> It must be for example
> {code:java}
> public class SecGroup implements java.io.Serializable {
> ....
> 	@ManyToMany(fetch = FetchType.LAZY, mappedBy = "secGroups")
> 	public Set<SsUsers> getSsUserses() {
> 		return this.ssUserses;
> 	}
> ....
> }
> public class SsUsers implements java.io.Serializable {
> ...
> 	@ManyToMany(fetch = FetchType.LAZY)
> 	@JoinTable(name = "SecGroupUser", schema = "dbm", joinColumns = {
> 			@JoinColumn(name = "UserId", nullable = false, updatable = false) }, inverseJoinColumns = {
> 					@JoinColumn(name = "GroupId", nullable = false, updatable = false) })
> 	public Set<SecGroup> getSecGroups() {
> 		return this.secGroups;
> 	}
> ...
> }
> {code}



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jbosstools-issues mailing list