Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >多对一的符号不能生成正确的基于ID的关系。

多对一的符号不能生成正确的基于ID的关系。
EN

Stack Overflow用户
提问于 2012-09-04 07:50:21
回答 1查看 562关注 0票数 0

Tag表与Category表的关系为多对一(许多标记与一个类别相关,或者一个类别具有多个标记)。

我应该得到从表Tag到表Category的正常的多对一关系。它应该基于表Category (名为id_category)的ID。然而,我却得到了.表VARCHAR(255)列中的Tag

下面是标记实体中代码的一部分:

代码语言:javascript
运行
AI代码解释
复制
/**
 * @ORM\Column(nullable=true)
 * @ORM\ManyToOne(targetEntity="Category")
 * @ORM\JoinColumn(name="id_category", referencedColumnName="id_category")
 */
protected $category;

类别实体没有适当的相关“标记”列,因为它是单向关系。无论如何,id_category是如何在Category实体中声明的(尽管我认为它并不重要):

代码语言:javascript
运行
AI代码解释
复制
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id_category;

我通过Doctrine2 2的命令update --dump-sql获得的结果如下:

代码语言:javascript
运行
AI代码解释
复制
ALTER TABLE Tag ADD category VARCHAR(255) DEFAULT NULL

原则给了我VARCHAR,而不是用外键作为id的INTEGER。有人知道为什么吗?

在这种情况下,如何告诉Symfony建立关系?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-04 07:57:15

不要使用@ORM\列,只需使用@ORM\ManyToOne:

代码语言:javascript
运行
AI代码解释
复制
/**
 * @ORM\ManyToOne(targetEntity="Category")
 * @ORM\JoinColumn(name="id_category", referencedColumnName="id_category", nullable=true)
 */
protected $category;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12267098

复制
相关文章
Hibernate 中 一对多、多对一、 关联关系的 配置
多对一:(街道→区县) * TBLJd.java 类* public class TblJd implements java.io.Serializable { // Fields private Integer jdid; private TblQx tblQx; private String jd; private Set tblFwxxes = new HashSet(); ...... } TblJd.hbm.xml: <cla
qubianzhong
2018/08/10
3.1K0
多表间的关系-一对多-多对多-一对一-外键约束
现实生活中,实体与实体之间肯定是有关系的,比如:老公和老婆,部门和员工,用户和订单、订单和商品、学生和课程等等。那么我们在设计表的时候,就应该体现出表与表之间的这种关系!表和表之间的关系分成三种:
Devops海洋的渔夫
2022/01/17
6.2K0
多表间的关系-一对多-多对多-一对一-外键约束
sql中一对多,多对一,一对一关系的解析
1、一对多:比如说一个班级有很多学生,可是这个班级只有一个班主任。在这个班级中随便找一个人,就会知道他们的班主任是谁;知道了这个班主任就会知道有哪几个学生。这里班主任和学生的关系就是一对多。
贵哥的编程之路
2022/06/20
2.6K0
创建servlet的4个步骤_映射不能一对多还是多对一
一,Servlet接口实现类:sun公司为Servlet接口定义了两个默认的实现类,分别为:GenericServlet和HttpServlet。 HttpServlet:指能够处理HTTP请求的servlet,它在原有的Servlet接口上添加了一与HTTP协议处理的方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。 HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如果为GET请求,则调用HttpServlet的doGet方法,如果为POST请求,则调用doPost方法。因此开发人员在编写Servlet时,通常只需要覆写doGet方法或者doPost方法,而不要去覆写service方法。
全栈程序员站长
2022/08/04
7510
[信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取
实体关系,实体属性抽取是信息抽取的关键任务;实体关系抽取是指从一段文本中抽取关系三元组,实体属性抽取是指从一段文本中抽取属性三元组;信息抽取一般分以下几种情况一对一,一对多,多对一,多对多的情况:
汀丶人工智能
2022/12/21
1.3K0
[信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取
实体关系,实体属性抽取是信息抽取的关键任务;实体关系抽取是指从一段文本中抽取关系三元组,实体属性抽取是指从一段文本中抽取属性三元组;信息抽取一般分以下几种情况一对一,一对多,多对一,多对多的情况:
汀丶人工智能
2022/12/03
1.8K0
Hibernate之关联关系映射(一对多和多对一映射,多对多映射)
别先生
2018/01/02
4.8K0
Hibernate之关联关系映射(一对多和多对一映射,多对多映射)
MongoDB 多对多关系的简单示例
例如文章的标签,一篇文章可能包含多个标签,一个标签也会对应多篇文章 这是一个多对多的映射关系,在sql中我们一般这样设计 Article: Id Title ... Tag: Id Name Relation: ArticleId TagId 通过表的连接,就可以查询出我们想要的各种数据 那么,如果用MongoDB的思想,该如何设计这种关系呢? 有一个关键点首先要知道:MongoDB中不支持文档的连接操作,所以就不能按照sql的思路来设计 设计示例 下
dys
2018/04/02
3.3K0
js中生成唯一id的,动态id,随机生成
1.随机数长度控制,定义一个长度变量(length),生成可控长度的随机数: Math.random().toString(36).substr(3,length) 2.引入时间戳: Date.now().toString(36) 3.合在一起最终办法: genID(length){ return Number(Math.random().toString().substr(3,length) + Date.now()).toString(36); }
李维亮
2021/07/08
11.5K0
hibernate 一对一,一对多,多对多关联关系使用
一对一 如果我们只是单纯的在两个实体类中分别加上@OneToOne注解,会发现两张表都分别引入了对方的主键作为外键。明显的数据冗余,毕竟关系不用双方存储。 利用mappedBy属性,指明关系由哪一方维护。
用户5166330
2019/04/16
5.3K0
hibernate 一对一,一对多,多对多关联关系使用
[译] 如何用 Room 处理一对一,一对多,多对多关系?
将数据拆分为相关联的表,并以有意义的方式将数据组合在一起 是设计关系型数据库的重要部分。从 Room 2.2 (现已稳定)开始,通过 @Relation注解,我们支持了表之间所有可能的关系:一对一,一对多,多对多 。
路遥TM
2021/08/31
3.7K0
不能错过的分布式ID生成器(Leaf ),好用的一批
Leaf是美团推出的一个分布式ID生成服务,名字取自德国哲学家、数学家莱布尼茨一句话:“There are no two identical leaves in the world.”(“世界上没有两片相同的树叶”),取个名字都这么有寓意,美团程序员牛掰啊!
Java程序猿阿谷
2020/08/11
1.4K0
不能错过的分布式ID生成器(Leaf ),好用的一批
SQLAlchemy学习-9.一对多和多对一关系
前言 一对多和多对一关系 一对多关系 一对多关系表设计,一个Parent类关联多个Child类 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine, Column, Integer, String, ForeignKey from sqlalchemy.orm import relationship # 拼接配置dialect + driver://username:pa
上海-悠悠
2022/08/26
3.3K0
SQLAlchemy学习-9.一对多和多对一关系
数据库在一对一、一对多、多对多怎么设计表关系
那么设计数据库的时候就应该在学生表内存放班级的ID作为外键,为什么不在班级表内放学生呢?
Java学习123
2021/12/28
5.1K0
常见的ID生成策略 – IdUtil – Hutool的ID生成工具
雪花算法是推特公司开源的工具:想了解前往本站:https://www.zanglikun.com/2941.html
收心
2023/03/06
9.6K0
【Mybatis】常见面试题:处理表与表之间的关系:多对一,一对多
小尘要自信
2023/10/10
1780
多对多关系表的创建方式、forms组件
through_fields:指定第三张表中哪两个字段维护表与表之间的多对多关系(这里有先后顺序,外键建在谁那里就先写谁)
GH
2019/12/16
5.2K0
多对多关系表的创建方式、forms组件
如何处理EF Core的多对多关系?
多对多关系不像其他关系那么简单,在这篇文章中,我将向您展示如何创建多对多关系以及如何在 EF Core 中使用它们。
沙漠尽头的狼
2021/12/01
3K0
Hibernate基于主键映射的一对一关联关系
Hibernate是一种流行的对象关系映射(ORM)框架,它为开发人员提供了一种简单而高效的方式来映射Java对象到关系型数据库。在Hibernate中,一对一关联关系的映射可以使用主键映射的方式来实现。
堕落飞鸟
2023/05/16
6760
Django笔记(十三)一对一,一对多,多对多之间的查询
先创建UserInfo表,再创建UserProfile表,这个UserProfile表里面有一个字段user_info ,是一对一的字段,也就是这个UserProfile表里面的user_info的字段,所有数据的都不一样,不可能一样,因为是OneToOneField,一对一
一写代码就开心
2021/12/20
3.1K0
Django笔记(十三)一对一,一对多,多对多之间的查询

相似问题

Sencha存储基于ids的多对一关系生成

15

符号+原则+一对多的关系

14

从多对多关系生成视图的正确方法?

12

基于多对关系的谓词

20

不能坚持一对多的关系

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文