【问题标题】:complex query in typeormtypeorm 中的复杂查询
【发布时间】:2021-02-25 20:00:13
【问题描述】:

你好每个人我都有包含用于翻译的特殊属性的实体,当我尝试使用 typeorm 获取这个特殊属性时,我有这个错误:(节点:3712)UnhandledPromiseRejectionWarning:QueryFailedError:在“[”> 或附近出现语法错误>>

实体是:

    import {
        Entity,
        PrimaryGeneratedColumn,
        Column, 
        BaseEntity, 
        OneToOne,
        JoinColumn,
        
        
      } from "typeorm";
      import {TextData} from "./TextData"
    
    @Entity()
    export class ContactUsDataNature extends BaseEntity {
    
    @PrimaryGeneratedColumn()
    id:number
    
    @OneToOne((type) => TextData, (text) => text.id, { cascade: true })
    @JoinColumn()
    dataNature:TextData
    
    }

文本数据为:

    import { Entity, Column, PrimaryGeneratedColumn, BaseEntity } from "typeorm";
    
    @Entity()
    export class TextData extends BaseEntity{
        @PrimaryGeneratedColumn()
        id: number;
    
        @Column({ type: "text", nullable: true })
        ar: string;
    
        @Column({ type: "text", nullable: true })
        en: string;
    
    }

我通常会像这样到达它

    const contact=new ContactUSDataNature()
    console.log(contact.dataNature[en])

我尝试了搜索的方式,但它不起作用:

export const getContactDataNaturebyData = async (dataNature: string,language="en") =>{
  const container=await ContactUsDataNature.find({
    
    where: (qb) => {
        if (true) {
            qb.andWhere("ContactUsDataNature__dataNature.:lan = :parentId", {
              lan:"en",  
              parentId: 1,
            });
        }
       
    },
    order: { id: "DESC" },
    skip: 10,
    take: 0,
    });
    console.log(container)
    return container
    }

如果我得到最终的字符串值,我需要在数据库中搜索 ContactUsDataNature

【问题讨论】:

    标签: database typescript typeorm


    【解决方案1】:

    您不能参数化查询中的列名。

    您可以通过连接列名来构建 where:

    qb.andWhere("ContactUsDataNature__dataNature." + lan + " = :parentId", { parentId: 1 }); 
    

    当你测试这个的时候,我建议你开启 TypeOrm full logging,这样你就可以看到实际生成的 SQL 并且可以快速解决任何问题。见TypeOrm logging

    【讨论】:

    • 谢谢....它有效,但我试图避免“sql注入”
    猜你喜欢
    • 2021-12-23
    • 2021-10-12
    • 2013-06-28
    • 2020-04-06
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多