草庐IT

多对多

全部标签

java - Hibernate 不会加载一对多的关系集,即使使用 eager fetch

我有以下hibernate映射。@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL,mappedBy="product")privateSetproductLicenses=newHashSet(0);@ManyToOne(fetch=FetchType.EAGER)@JoinColumn(name="product_id",nullable=false)privateProductproduct;但是当我调用product.getProductLicences()时,我总是得到一个空的Set,即使在事务方法中也是如此。se

java - Hibernate 多对多关联 : left hand side collection contains elements, 但右侧集合为空

我在持久层中遇到了多对多关联的问题。我的场景如下:一个用户可以有多个角色,一个角色可以有多个用户。在测试期间,我遇到了一个奇怪的行为。我创建了角色对象和几个用户对象。角色被设置给每个用户。在此之后,使用DAO保存用户。然后加载其中一个用户以检查他是否获得了在保存用户对象之前传递给他的角色。对用户调用getRoles()表明角色设置正确。为了检查反向是否也有效,使用角色DAO从数据库加载角色对象。但是在角色对象上调用getUsers()只会返回一个空集,尽管它应该包含具有该角色的所有用户。我仔细检查了数据库表,但似乎一切正常。用户、角色和user_role表都已正确填写。那么为什么角色对

java - REST Controller 中具有一对多关系的实体的递归 JSON View

我正在使用SpringBoot和JPA构建REST接口(interface)。现在,我为从数据库中获取的产品列表返回了一个奇怪的JSON。假设我有:@EntitypublicclassProduct{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongid;@ManyToOne(optional=false,fetch=FetchType.LAZY)@JoinColumn(name="categoryId",nullable=false,updatable=false)privateCategorycategory;..

java - 如何使用链接表在 Hibernate 中映射多对多列表

我想使用链接表在Hibernate中映射多对多。我有两个类,父类和子类,例如:publicclassParent{privateList_children;//...gettersandsetters}我使用一个包含三列的链接表(link_table)link_id,parent_id,和child_id.数据库是SQLServer,id类型是uniqueidentifier。因此,我通常将guid用于id字段。如何使用来实现它标签,如果这是要使用的正确标签?您知道有什么好的文档可以实现这一点吗?我目前收到一个ConstraintViolationException,但找不到任何好的文

java - JPA:两个实体之间存在多个多对多关系?

我有两个实体类“用户”和“文档”。每个用户都有一个收件箱和一个发件箱,实际上是两个List,每个Document可能驻留在多个用户的收件箱和发件箱中。这是我的类(class):@EntitypublicclassUser{@IdprivateLongid;@ManyToMany(mappedBy="userinbox",cascade=CascadeType.ALL)privateListinbox=newArrayList();@ManyToMany(mappedBy="useroutbox",cascade=CascadeType.ALL)privateListoutbox=new

java - mongodb 中的多对多使用 spring 配置(首选注释)

我正在为模式建模。由于我是MongoDB的新手,所以我不知道如何为nosql数据库建模。构建关系类型数据库并在其上使用mongo不允许我使用多对多映射。使用Spring-data确实支持一对多使用@DBRef在List之上.但我想要的是多对多。任何帮助将不胜感激。请更喜欢使用代码来解释。或者一个demo结构来说明。提前致谢。 最佳答案 在MongoDB中有几种实现多对多的方法。我认为最简单的是:多对多关系场景:反规范化后:您的SpringData代码应如下所示:publicclassCategory{@IdprivateObject

实体框架一对多,只有一个导航属性:with Requireddepentant?

使用最新的实体框架,我有一个在许多方面只有一个一对多机智的课程。如前所述MSDN:实体框架流利的API-关系:一个方向(也称为单向)关系是在仅在关系之一上定义导航属性而不是两者都定义的。简化:School有很多Students;学校和学生之间有一对一的关系,但是学校没有包含学生收藏的财产classStudent{publicintId{get;set;}//aStudentattendsoneSchool;foreignkeySchoolIdpublicintSchoolId{get;set;}publicSchoolSchool{get;set;}}classSchool{publicint

java - 多个一对多关系 ResultSetExtractor

假设我有一个具有两种不同的一对多关系的对象。很像:Customer1MBrands和Customer1MOrders假设我的对象Customer有两个与这两个对象相关的列表。我读过这个例子:http://forum.springsource.org/showthread.php?50617-rowmapper-with-one-to-many-query这解释了如何使用单个一对多关系来做到这一点。为了您的方便,这里是ResultSetExtractor覆盖:privateclassMyObjectExtractorimplementsResultSetExtractor{publicO

java - hibernate 多对多关联不更新连接表

在我的应用程序中,我在User和Preference实体之间建立了多对多关联。由于连接表需要一个额外的列,我不得不将其分解为2个一对多关联:用户实体:@OneToMany(mappedBy="user",fetch=FetchType.EAGER,cascade={CascadeType.PERSIST,CascadeType.MERGE},orphanRemoval=true)publicSetgetPreferences(){returnpreferences;}偏好实体:@OneToMany(mappedBy="preference",fetch=FetchType.EAGER)

java - 如何在 Hibernate 中以单向多对一的方式离开联接表?

我正在使用Howtojointablesinunidirectionalmany-to-onecondition?.如果你有两个类:classA{@IdpublicLongid;}classB{@IdpublicLongid;@ManyToOne@JoinColumn(name="parent_id",referencedColumnName="id")publicAparent;}B->A是多对一关系。我知道我可以将B的集合添加到A,但我不希望这种关联。所以我的实际问题是,是否有创建SQL查询的HQL或Criteria方法:select*fromAleftjoinBon(b.pare