jpa多对多映射时(@ManyToMany)时堆溢出(java.lang.StackOverflowError: null )
来源:互联网 发布:剑侠情缘数据互通 编辑:程序博客网 时间:2024/05/15 06:37
JPA(多对多映射) 角色和菜单多对多映射
TSRoleEntity.class
package com.nwnu.GanSuBank.system.manager.role.domain;import com.fasterxml.jackson.annotation.JsonIgnore;import com.nwnu.GanSuBank.system.manager.menu.domain.TSMenuEntity;import org.hibernate.annotations.GenericGenerator;import javax.persistence.*;import java.io.Serializable;import java.sql.Time;import java.util.HashSet;import java.util.Set;@Entity@Table(name = "T_S_ROLE", schema = "C##GSBANK", catalog = "")public class TSRoleEntity implements Serializable { private String roleid; private String rolename; private String remark; private Time gmtCreate; private Time gmtModifid;@ManyToMany @JoinTable(name="ROLE_MENU", joinColumns={@JoinColumn(name="ROLEID", referencedColumnName="ROLEID")}, inverseJoinColumns={@JoinColumn(name="MENUID", referencedColumnName="MENUID")}) public Set<TSMenuEntity> getMenuid() { return menuid; } public void setMenuid(Set<TSMenuEntity> menuid) { this.menuid = menuid; } private Set<TSMenuEntity> menuid = new HashSet<TSMenuEntity>(); @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name="system-uuid", strategy = "uuid") @Column(name = "ROLEID", nullable = false, length = 32) public String getRoleid() { return roleid; } public void setRoleid(String roleid) { this.roleid = roleid; } @Basic @Column(name = "ROLENAME", nullable = false, length = 255) public String getRolename() { return rolename; } public void setRolename(String rolename) { this.rolename = rolename; } @Basic @Column(name = "REMARK", nullable = false, length = 255) public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } @Basic @Column(name = "GMT_CREATE", nullable = true) public Time getGmtCreate() { return gmtCreate; } public void setGmtCreate(Time gmtCreate) { this.gmtCreate = gmtCreate; } @Basic @Column(name = "GMT_MODIFID", nullable = true) public Time getGmtModifid() { return gmtModifid; } public void setGmtModifid(Time gmtModifid) { this.gmtModifid = gmtModifid; }}TSMenuEntity.classpackage com.nwnu.GanSuBank.system.manager.menu.domain;import com.fasterxml.jackson.annotation.JsonIgnore;import com.nwnu.GanSuBank.system.manager.role.domain.TSRoleEntity;import javax.persistence.*;import java.io.Serializable;import java.sql.Time;import java.util.HashSet;import java.util.Set;@Entity@Table(name = "T_S_MENU", schema = "C##GSBANK", catalog = "")public class TSMenuEntity implements Serializable { private long menuid; private Long parentid; private String menuname; private String url; private String perms; private Long type; private Long ordername; private Time gmtcreate; private Time gmtmodified; @ManyToMany(mappedBy="menuid") public Set<TSRoleEntity> getTsRoleEntitySet() { return tsRoleEntitySet; } public void setTsRoleEntitySet(Set<TSRoleEntity> tsRoleEntitySet) { this.tsRoleEntitySet = tsRoleEntitySet; } private Set<TSRoleEntity> tsRoleEntitySet = new HashSet<TSRoleEntity>(); @Id @Column(name = "MENUID") public long getMenuid() { return menuid; } public void setMenuid(long menuid) { this.menuid = menuid; } @Basic @Column(name = "PARENTID") public Long getParentid() { return parentid; } public void setParentid(Long parentid) { this.parentid = parentid; } @Basic @Column(name = "MENUNAME") public String getMenuname() { return menuname; } public void setMenuname(String menuname) { this.menuname = menuname; } @Basic @Column(name = "URL") public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } @Basic @Column(name = "PERMS") public String getPerms() { return perms; } public void setPerms(String perms) { this.perms = perms; } @Basic @Column(name = "TYPE") public Long getType() { return type; } public void setType(Long type) { this.type = type; } @Basic @Column(name = "ORDERNAME") public Long getOrdername() { return ordername; } public void setOrdername(Long ordername) { this.ordername = ordername; } @Basic @Column(name = "GMTCREATE") public Time getGmtcreate() { return gmtcreate; } public void setGmtcreate(Time gmtcreate) { this.gmtcreate = gmtcreate; } @Basic @Column(name = "GMTMODIFIED") public Time getGmtmodified() { return gmtmodified; } public void setGmtmodified(Time gmtmodified) { this.gmtmodified = gmtmodified; }}就会报错java.lang.StackOverflowError: null
at java.lang.ClassLoader.defineClass1(ClassLoader.java) ~[na:1.8.0_144]
at java.lang.ClassLoader._jr$defineClass(ClassLoader.java:763) ~[na:1.8.0_144]
at java.lang.ClassLoader.defineClass(ClassLoader.java) ~[na:1.8.0_144]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_144]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) ~[na:1.8.0_144]
at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_144]
at java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[na:1.8.0_144]
at java.net.URLClassLoader$1.run(URLClassLoader.java:362) ~[na:1.8.0_144]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_144]
at java.net.URLClassLoader.findClass(URLClassLoader.java:361) ~[na:1.8.0_144]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_144]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_144]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_144]我在网上查jpa堆溢出,这个问题很多人遇到。解决方案也有很多.
在关联的实体上面设置@JsonIgnore,这个注解的意思是表示在序列化的时候,忽略这个属性.但是我现在的逻辑是在页面中必须使用到这个关联实体中的属性,所以就不能这么做了,不然在页面中是取不出这个数据的。
Uncaught TypeError: Cannot read property 'name' of undefined
阅读全文
0 0
- jpa多对多映射时(@ManyToMany)时堆溢出(java.lang.StackOverflowError: null )
- JPA @ManyToMany java.lang.StackOverflowError: null
- Hibernate中一对多关联映射时,查询某个对象报 java.lang.StackOverflowError错误
- java.lang.stackoverflowerror java虚拟机堆栈溢出
- Hibernate一对多查询对象时报java.lang.StackOverflowError错误(堆栈溢出)解决方案
- 学习HQL时,测试集合运算报的堆栈溢出错误,java.lang.StackOverflowError
- 栈溢出错误:message java.lang.StackOverflowError
- java.lang.StackOverflowError(hibernate内存溢出)
- Hibernate JPA 多对对 ManyToMany
- 关系/对象映射 多对多关系(@ManyToMany 注释)【
- hibernate关系映射--单向多对多@ManyToMany
- hibernate关系映射--双向多对多@ManyToMany
- 关系/对象映射 多对多关系(@ManyToMany 注释)
- jpa多对多映射
- JPA多对多映射
- Hibernate多对一遍历对象的时候报java.lang.StackOverflowError错误
- Hibernate多对一遍历对象的时候报 java.lang.StackOverflowError错误
- JPA关联映射 - 多对多映射
- 介绍Hadoop家族产品
- 12周作业
- php打印输出
- wdatapicker 时间限制
- [洪流学堂]Hololens开发高级篇2:手势(Gesture)
- jpa多对多映射时(@ManyToMany)时堆溢出(java.lang.StackOverflowError: null )
- LoRa 凭什么传的远、信噪比高、误码率低?
- LaTex 公式
- Self-Supervised Learning for Stereo Matching with Self-Improving Ability
- php超强校验身份证类库,验证身份证有效性,根据国家标准GB 11643-1999 15位和18位通用
- 简易旋转倒立摆设计报告
- Linux常用操作
- Python----字符串操作与列表使用
- Java集合框架