草庐IT

OneToMany

全部标签

java - JPA CriteriaQuery OneToMany

我有两个具有OneToMany关系的实体。为简单起见,我们假设它们是学校和学生,学校与学生之间存在单向关系。我想找到有特定学生的学校对象(具有特定年龄、姓名、ssn等的学生)。我知道我可以为简单的学校属性(对于学校名称,如下所示)创建一个简单的条件,如下所示:ParameterExpressionp=criteriaBuilder.parameter(String.class,"schoolName");criteria=criteriaBuilder.and(criteria,criteriaBuilder.like(schoolRoot.get("schoolName"),p));

java - 获取多个 onetoMany 关系 Hibernate JPA

我正在使用HibernateJPA1.0。我有以下类型的模型,我认为manyToOne和oneToOne关系是“急切地”获取的,oneToMany是“懒惰地”获取的。我想获取实体A及其所有关联,其中a.id=?A一对多BB一对一C单对多BoneToOneEEoneToManyDBoneToOneFFoneToManyD是否可以在单个查询中加载该实体?或者在不考虑“n+1选择问题”的查询子集中!到目前为止,我加载所有A关联的解决方案是执行以下操作:“从A中选择DISTINCTaJOINFETCHa.bsWHEREa.id=:aID”然后使用代码迭代以获取所有其他关联。集合Bbs=A.ge

java - Hibernate (JPA) 多个@OneToMany 用于同一模型

我有两个模型。@EntitypublicclassStudent{@Id@GeneratedValue(strategy=GenerationType.AUTO)protectedlongid;@?protectedAddresshomeAddress;@?protectedAddressschoolAddress;}@EntitypublicclassAddress{@Id@GeneratedValue(strategy=GenerationType.AUTO)protectedlongid;@?protectedListstudents;}我需要在homeAddress、schoo

java - 在 Hibernate 中保存实体后更新 OneToMany 列表

我有关系://InA.javaclass@OneToMany(mappedBy="a",fetch=FetchType.LAZY)@Cascade(CascadeType.SAVE_UPDATE)privateListbList;//InB.javaclass@ManyToOne(fetch=FetchType.LAZY)@JoinColumn(name="id_a")@Cascade(CascadeType.SAVE_UPDATE)privateAa;现在看这个:Aa=newA();//settingABb=newB();//settingBb.setA(a);session.sav

java - JPA @OneToMany 和@ManyToOne : back reference is null

我有以下数据结构。@EntitypublicclassDeviceextendsAbstractEntityimplementsSerializable{privateintid;//...privateListitems;@OneToMany(fetch=FetchType.EAGER)publicListgetItems(){returnconfigurationItems;}}每个项目都包含对设备的反向引用:classItem{privateDevice;@ManyToOne(cascade={CascadeType.PERSIST,CascadeType.MERGE,Casca

java - 打开 JPA Saving OneToMany,未设置外键

我有两个表:TaStock和TaStockPrice。表TaStockPrice中的字段tastockid是表TaStock的外键。@EntitypublicclassTaStock{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)Integerid@OneToMany(mappedBy="taStock",fetch=FetchType.LAZY,cascade=CascadeType.ALL)privateListtastockpriceList;publicvoidaddTaStockPrice(TaStockPriceta

java - JPA - 从 OneToMany 关系中删除一个 child

在@OneToMany关系中,如果我想删除一个child,我是否也需要从parent的集合中明确删除该child,还是只删除该child就足够了?例如,Person和Phone。每个人都有很多电话号码。如果我想删除一个人的一个电话号码就足够了:EntityManager.remove(phone);或者我需要事先这样做:Person.getPhone().remove(phone);更不用说,CascadeType设置为MERGE。 最佳答案 您需要从phones集合中显式删除Phone,仅使用EntityManager删除它是不够

Java JPA @OneToMany 需要返回@ManyToOne?

CreateTableA(IDvarchar(8),PrimaryKey(ID));CreateTableB(IDvarchar(8),A_IDvarchar(8),PrimaryKey(ID),ForeignKey(A_ID)ReferencesA(ID));鉴于我已经使用上面的SQL语句创建了两个表,并且我想为它们创建Entity类,对于类B,我有这些成员属性:@Id@Column(name="ID",nullable=false,length=8)privateStringid;@JoinColumn(name="A_ID",referencedColumnName="ID",n

java - Hibernate - 在 OneToMany 上使用 JOIN 时 sqlQuery 映射冗余记录

我在2个实体(Entity1到Entity2)之间有@OneToMany关联。我的sqlQueryString包括以下步骤:selectent1.*,ent2.differ_fieldfromEntity1asent1leftouterjoinEntity2asent2onent1.item_id=ent2.item_id添加一些子查询并将结果写入some_field2、some_field3等。执行:QuerysqlQuery=getCurrentSession().createSQLQuery(sqlQueryString).setResultTransformer(Transfo

java - Hibernate - 从单向 OneToMany 关系中获取集合的 HQL

我有一个具有单向一对多关系的类,如下所示:publicclassOrder{@OneToMany(cascade=CascadeType.ALL)@JoinTable(name="order_item",joinColumns={@JoinColumn(name="order_id")},inverseJoinColumns={@JoinColumn(name="item_id")})publicSetgetItems(){returnitems;}}通常获取此订单的内容很简单:Listitems=order.getItems();但无论出于何种原因,我可能想以某种方式过滤我的结果,并