假设我有一个类型化实体定义,如下所示:
@Entity()
export class MyEntity {
@PrimaryGeneratedColumn()
id: number;
@Column('varchar', { length: 500 })
name: string;
...
@OneToOne(type => DocumentEntity)
@JoinColumn()
myDoc: DocumentEntity;
@OneToMany(type => DocumentEntity, document => document.myEntity)
@JoinColumn()
otherDocs: DocumentEntity[];
...
}
所以它有几个实体关系,OneToMany/onetomone
在制作DTO时,我该如何实现这一点?
这里我有一个例子DTO:
export class CreateMyEntityInputDto {
@IsString()
name: string;
...
@IsOptional()
myDoc: DocumentEntity;
@IsOptional()
otherDocs: DocumentEntity[];
....
}
我不清楚通过Graphql的最佳方法
当前graphql接口:
####################
# @input
####################
input CreateDealInput {
name: String
...
myDoc: DocumentInput
otherDocs: [DocumentInput]
}
如果我正在设计一个传统的RESTful服务,我会通过一个单独的endpoint在DB中创建文档,等待成功返回docentID: int
然后在创建新的myEntity
(在单独的终结点)时,将这些id指定为myEntity.myDoc/myEntity.otherDocs
字段中的纯整数。
我在这里采取同样的方法吗?i、 e.我是否在graphql中的单独查询中创建文档实体,从成功响应中解析出创建的ID,然后在DTO定义中指定这些int值?
比如:
js prettyprint-override">@IsOptional()
myDoc: int;
然后,在创建myEntity时,通过id: int加载这些(现有的)文档实体,然后通过Typeorm?
还是在一个大的嵌套POST图形查询中将所有文档字段作为嵌套实体传递,并使用级联来创建它们?
我自己也遇到了同样的问题。我的解决方案是通过id引用嵌套实体。在您的示例中,这类似于:
export class CreateMyEntityInputDto {
@IsString()
name: string;
...
@IsOptional()
myDocId: string;
@IsOptional()
otherDocIds: string[];
....
}
该解决方案不需要在一个变种中创建嵌套实体,而是需要多个实体。
问题内容: 我在laravel中很难建立起非常嵌套的关系。 所需的行为如下, 我通过ID选择一个事件,我想查看哪些人已订阅该事件。 现在的问题是事件和人员之间有一些表格。 这是有效的查询! 事件模型 城市模型 公司模式 人物模型 我尝试过的 和 还有很多其他可能性,我真的很坚持。在laravel中实现这种嵌套关系链接如此困难吗? 谢谢! 问题答案: 如果只想从表中选择某些字段,请使用以下命令:
在之前,创建一个有依赖其他模型的模型的时候,我们需要提前把依赖的模型给建立好,这样就非常麻烦,是不是有那么一种方法,在一个 create 里面把其他的依赖模型一起新建出来呢? 这一小节就来解决这个问题。这其中有一个坑(关于命名),让我调试的头皮发麻。 Book 与 User 的 belongs 关系 1. 保存关系 来到 book.ts , 首先保存一下 this.belongsTo 的返回值,在
你一定看过下面的功能(在facebook上),一个有一些评论的帖子,每个评论都有一个类似的计数器。 https://img4.hostingpics.net/pics/67853820170616003640LaravelNewsAccueil.png 在拉雷维尔,这将是类似的 帖子有很多评论 以下评论发布 类似于用户的评论 CommentLike belong评论 评论有很多类似的评论 所以,现
前言:我试图在关系数据库的MVC体系结构中使用存储库模式。 我最近开始学习PHP中的TDD,我意识到我的数据库与应用程序的其余部分耦合得太紧密了。我读过关于存储库和使用IoC容器将其“注入”到我的控制器中的文章。很酷的东西。但现在有一些关于存储库设计的实际问题。请考虑以下示例。 所有这些查找方法都使用选择所有字段()方法。然而,在我的应用程序中,我总是试图限制我得到的字段的数量,因为这经常增加开销
问题内容: 前言:我正在尝试在MVC体系结构和关系数据库中使用存储库模式。 我最近开始学习PHP中的TDD,并且意识到我的数据库与我的其余应用程序之间的联系太紧密了。我已经阅读了有关存储库并使用IoC容器将其“注入”到控制器中的信息。很酷的东西。但是现在有一些关于存储库设计的实际问题。考虑以下示例。 问题1:字段过多 所有这些查找方法均使用全选()方法。但是,在我的应用程序中,我总是试图限制获得的
我必须给出使用Site Minder的SSO架构的建议。我们几乎没有J2EE应用程序。这些J2EE应用程序设计为在SSO提供者进行身份验证后,当http头包含信息时工作。我们一直保持应用程序SSO提供程序不可知。这意味着我们只依赖SSO提供程序的头。这在RSA作为SSO提供程序的情况下运行良好。 现在SiteMinder提出了另一种架构。请求的流动方式是 带IIS的SiteMinder- 要崩溃,