[英]Hibernate onetomany manytoone issue
我正在使用休眠作为ORM。 我有两个实体Shop
和TypeShop
。 TypeShop
可能有一些商店。
@Entity
@Table(name = "shop_types")
public class TypeShop {
...
@OneToMany(fetch = FetchType.EAGER, mappedBy="typeShop", cascade = CascadeType.ALL)
private Set<Shop> shops;
...
}
和
@Entity
@Table(name = "shops")
public class Shop {
...
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name = "shop_type_id")
private TypeShop typeShop;
...
}
当我想通过json格式的TypeShop
id
查找所有shops
,我得到如下信息:
[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First Description","coordinates":"59.842055288480076, 29.700164794921875","contacts":"First Contacts","site":"First web site","mail":"First email","photos":[],"typeShop":{"id":11,"name":"Производство газобетона","shops":[{"id":146,"name":"First Name","address":"First Address","description":"First .....
列表一次又一次地继续下去。 如您所见,由于获取类型为EAGER
我得到了无限的json格式。 我曾尝试将EAGER
更改为LAZY
但出现“failed to lazily initialize a collection of role” exception
。
我怎么解决这个问题? 提前致谢!
编辑:如果我从Shop
实体中删除TypeShop
吸气剂,则有帮助。 但是我很好奇是否有更好的方法。
这称为JSON双向引用问题。 引用: http ://wiki.fasterxml.com/JacksonFeatureBiDirReferences
检查@JsonIdentityInfo和@ JsonBackReference / @ JsonManagedReference
用注释您的实体
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.