2017-11-28 19 views
0

.find()を使用してPersonを選択しようとすると、選択が正しく行われます。しかしSelectには、このように宣言していないフィールドがいくつかあります。例: はフィールド:TypeOrmで間違った名前のインデックスが選択されています

... 
@Index("mail_blog_yn",["mail_blog_yn",]) 
... 
export class person { 
... 
    @ManyToOne(type=>lov_jn_kz, mail_blog_yn=>mail_blog_yn.persons4) 
    @JoinColumn() 
    mail_blog_yn:lov_jn_kz; 
... 
} 

情報:エンティティを選択し、ログに次のようになりますTypeOrm-Model-Generator

で生成されました:ここ

... 
`person`.`mailBlogYnKeyTypKz` AS `person_mailBlogYnKeyTypKz` 
... 

コードや接続設定:

typeorm.createConnection({ 
    type: "mysql", 
    host: "localhost", 
    port: 3306, 
    username: Configuration.Database.user, 
    password: Configuration.Database.password, 
    database: Configuration.Database.database, 
    entities: [ 
    ... 
    person, 
    .... 
    ], 
    synchronize: false, 
    logging: true 
}).then(connection => { 
    const modelRepository: typeorm.Repository<person> =  connection.getRepository(person); 
    modelRepository.find({ 
    "username" : 'x' 
}).then((persons: person[]) => { 
    console.log(JSON.stringify(persons)); 


    }); 
}).catch(error => console.log(error)); 

ここにPerson.tsと完全なSQL私のテーブルの人についてのいくつかのデータ。 Select-Problem.zip

答えて

0

はい、その発電機の問題。 (ここを参照してください:Typeorm Issue 1253)を

@ManyToOne(type=>lov_jn_kz, mail_blog_yn=>mail_blog_yn.persons4) 
@JoinColumn() 
mail_blog_yn:lov_jn_kz; 

は次のようになります。

@ManyToOne(type=>lov_jn_kz, mail_blog_yn=>mail_blog_yn.persons4) 
@JoinColumn({ name: "mail_blog_yn" }) 
mail_blog_yn:lov_jn_kz; 

これは、問題を修正しますが、手で行うと私のためのオプションではありませんので、typeormモデル・ジェネレータは間違いなくこの問題を解決する必要があります。

typeorm-model-generatorでこの問題を把握してください。Issue #13

0

私は今の回避策を持っている:TypeORMからQueryBuilderを使用して

は私が唯一の私は本当に必要な値を選択することができ、すべての値を選択するからORMを防ぐことができます。

実際の解決策をまだ待っています。

関連する問題