当前位置: 首页 > 知识库问答 >
问题:

对数据库关系有点困惑-教义2 YAML

东方方伟
2023-03-14
manyToMany:
    posts:
      targetEntity: PostEntity
      mappedBy: taxonomies

员额实体:

manyToMany:
    taxonomies:
      targetEntity: TaxonomyEntity
      inversedBy: posts
      joinTable:
        name: post_taxonomy_relations
        joinColumns:
          post_id:
            referencedColumnName: id
        inverseJoinColumns:
          taxonomy_id:
            referencedColumnName: id

场景二:

如果只删除(数据库级)这些记录中的一条,请删除post_taxonomy_relations中的相关实体

  oneToMany:
    products:
      targetEntity: PostEntity
      cascade: ["remove"]
      mappedBy: post_template
      joinColumn:
        name: id
        referencedColumnName: template_id
  manyToOne:
    template:
      targetEntity: PostTemplateEntity
      inversedBy: products
      joinColumn:
        name: template_id
        referencedColumnName: id

共有1个答案

茅桐
2023-03-14

级联操作在内存中执行。这意味着集合和相关实体被提取到内存中,即使它们在即将执行级联操作时仍被标记为lazy。

若要依赖数据库级的级联操作来执行删除操作,则可以通过将每个联接列设置为级联来使用onDelete选项来配置它。

当使用orphanremoval=true时,选项原则假设实体是私有的,不会被其他实体重用。如果你忽略了这个假设,你的实体将会被教义删除,即使你把孤立的实体分配给了另一个。

oneToMany:
  products:
    targetEntity: PostEntity
    mappedBy: post_template
    joinColumn:
      name: id
      referencedColumnName: template_id
      onDelete: CASCADE


manyToOne:
  template:
    targetEntity: PostTemplateEntity
    inversedBy: products
    cascade: ["remove"]
    joinColumn:
      name: template_id
      referencedColumnName: id
foreach ($user->getRoles() as $role) {
    $user->removeRole($role)
}
$em->remove($user);
$em->flush();
 类似资料:
  • 过去几天,我一直在浏览在线文章、视频,甚至是堆叠帖子,以了解如何在cassandra中建模数据。我理解需要根据查询模式对数据进行建模,但我不理解的是cassandra中的列族和列关系,如果这适用于它们,我想查询数据。 我有一个关系数据库表,其中包含以下内容 本质上,它是一个包含客户 ID 及其账户 ID 的表,因此唯一键将cust_id acct_id。每个客户可以有多个 1 个或多个帐户。有一些

  • 例如,一个方法中有10000次循环。当它运行1000次时,backedge\u计数器触发JIT编译。解释器继续执行。当它循环4000次时,JIT编译完成。 我的问题是,剩余的6000次是如何由解释器执行的,还是如何执行本机代码?或者在下次调用此方法之前不会执行本机代码?下次调用此方法时会发生什么?

  • 因此,我在Java代码中看到了的初始化 所以据我所知,在Java中,String是对象数据类型。

  • 我正在尝试提出一种解决方案,它涉及在连接操作之后应用一些逻辑,从多个中的中选择一个事件。这类似于reduce函数,但它只返回1个元素,而不是递增地返回。因此最终结果将是单个(,对,而不是一个 每个键保证只到达一次。 假设像上面这样的连接操作,它用4个生成了1个,成功地连接并收集在。现在,我想做的是,立即访问这些值,并执行一些逻辑以将正确匹配到一个。例如,对于上面的数据集,我需要(,和)。 将为每个

  • 所以我一直在读Kafka的语义学,我对它的工作原理有点困惑。 我理解生产者如何避免发送重复的消息(以防代理的ack失败),但我不明白的是,在消费者处理消息但在提交偏移量之前崩溃的情况下,一次是如何工作的。Kafka不会在这种情况下重试吗?

  • 问题内容: 我浏览了与该问题相关的一堆问题和答案,但是我仍然发现我在意想不到的地方得到了切片警告的副本。另外,它的代码在以前对我来说运行良好,这使我想知道某种更新是否可能是罪魁祸首。 例如,这是一组代码,其中我要做的就是将Excel文件读入pandas中,并减少语法中包含的列集。 现在,我对该文件所做的任何进一步更改都会引发切片警告的副本。 /Users/samlilienfeld/anacond