草庐IT

ManytoOne

全部标签

php - Doctrine multiple OneToMany/ManyToOne 双向完整性约束违反

在Symfony2的最新Doctrine中,试图计算出两个对象之间的多重双向关系。Personowner对象有一个邮政地址,然后在一个集合中有多个次要地址,我删除了这个人,我希望它的所有地址也被删除(但是删除一个地址不应该删除一个人),但是我收到这个错误-Anexceptionoccurredwhileexecuting'DELETEFROMaddressWHEREid=?'withparams{"1":"fb5e47de-2651-4069-b85e-8dbcbe8a6c4a"}:[PDOException]SQLSTATE[23000]:Integrityconstraintvio

php - Doctrine 2 坚持在 ManyToOne 关系中持久化已经管理的实体

我有一个包含部门的数据库表。我有另一个包含人的表。正如您所期望的那样,一个部门包含很多人,而一个人在一个部门中。当我想将一个新人持久保存到数据库中时,我创建了一个Person对象并尝试将其Department属性设置为一个由EntityManager管理的existingDepartment对象。但是,当我尝试保留我的新Person时,出现异常:Anewentitywasfoundthroughtherelationship'Entities\Person#department'thatwasnotconfiguredtocascadepersistoperationsforentit

php - 具有 ManyToOne 关联的实体上的 getArrayResult

有如下基本表(一对多关系)客户端-有很多用户。用户-每个用户都属于一个客户端。在一个非常简单的示例中,如果我查询用户实体(Querybuilder)使用getArrayResult()我看到以下内容:实际生成的SQL中包含了需要的外键字段返回(即ClientID)实际返回的数据数组不包含外键field。在这个阶段我不需要返回外部数据所以不需要加入关联表。所以问题是...我如何返回数组中的外键值?查询是:$qb=$this->_em->createQueryBuilder();$qb->select('e');$qb->from('Entity\User','e');SQL是:SELEC

JPA如何避免在@manytoone或@onetoone中更新相关实体

我有两个这样的实体:@Entity@Table(name="article")@EntityListeners({AuditingEntityListener.class})publicclassNotificationimplementsSerializable{@GeneratedValue(strategy=GenerationType.IDENTITY)@IdprivateIntegerid;@OneToMany(mappedBy="notification",cascade={CascadeType.PERSIST})privateListlangs;@OneToMany(mappe

mongodb - EclipseLink MongoDB @ManyToOne classCastException 非常简单的例子

我试图使EclipseLink(2.4.1)overMongoDB在建立关系时按预期工作。但是……我必须要实体:@Entity@NoSql(dataType="account",dataFormat=DataFormatType.MAPPED)//dataType->collectionName,MAPPED->becauseobjectaretransformedintoaMAPinMongoDB@Table(uniqueConstraints=@UniqueConstraint(columnNames="email"))publicclassAccountextendsJPAMon

java - 删除父 manyToOne 注释时删除孤儿

我有两个实体,相关如下@Entity@Table(name="APPOINTMENT")publicclassAppointment{@Id@GeneratedValue(strategy=GenerationType.AUTO)privatelongcodeAp;@ManyToOne(fetch=FetchType.EAGER),@OnDelete(action=OnDeleteAction.CASCADE)@JoinColumn(name="codeP")privatePatientpatient;//attributes//gettersandsetters//construct

php - 与自定义字段名称的学说 2 manytoone 关系

我正在使用Doctrine2连接到mysql数据库并从中生成对象,该数据库是filemaker应用程序的共享后端。因此,我不能让Doctrine完全自动生成表,需要自定义从类属性到数据库表字段的映射。默认情况下,以下注释映射到表字段“pubofficeid_id”。我需要它映射到“pubofficeid”。这可能吗?我可以更改注释或类属性名称中的任何内容。/***@ManyToOne(targetEntity="Hs_Profile_Staff",inversedBy="staffPubRelation",cascade={"persist"})*/public$pubofficeid

java - JPA 复合键与 ManyToOne 获取 org.hibernate.PropertyAccessException : could not set a field value by reflection setter of

我有一个复合键ContractServiceLocationPK由三个id(contractId,locationId,serviceId)组成在可嵌入类中键入long。使用此复合键的类ContractServiceLocation使用@MapsId注释将这些ID映射到它们的对象。这是它的样子(删除了setter/getter和不相关的属性):契约(Contract)@Entity@Table(name="Contract")publicclassContractimplementsSerializable{publicContract(){}@Id@GeneratedValuepri

java - 何时使用/不使用,@OneToOne 和@ManyToOne

我刚刚开始阅读有关JPA及其在Hibernate中的实现的内容。为了更好地理解细节,我需要对一些基础知识进行一些澄清。什么时候使用@OneToOne?如果实体管理器需要处理相关对象的持久性,我可能会使用@OneToOne。关键是,我总是可以不用指定@OneToOne,但我有责任管理关系并确保引用的对象不处于transient。这是真的吗?什么时候使用,什么时候不使用@ManyToOne?比如说,我正在定义一个Employee类,并且需要定义与Employer类的关系。在这种情况下,我是否需要如下指定@ManyToOne?@EntitypublicclassEmployer{String

java - 为什么 JPA 对于 @ManyToOne 关系默认使用 FetchType EAGER

我开始注意到@ManyToOne映射的默认FetchType在JPA和Hibernate中是EAGER,而对于@OneToMany映射,默认FetchType为LAZY。这背后的具体原因是什么? 最佳答案 根据JPA2.0规范c,默认值如下:OneToMany:LAZYManyToOne:EAGERManyToMany:LAZYOneToOne:EAGER在hibernate中,一切都是懒惰的来自Hibernate文档,Bydefault,Hibernateuseslazyselectfetchingforcollectionsan