当我尝试用.find()选择一个人时,它会按照它应该选择。但Select中有几个字段,我没有声明像这样。例: 领域:
...
@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
生成的Select在日志中显示如下:
...
`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 :(得分:0)
答案 1 :(得分: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-model-generator绝对应该解决这个问题。
在typeorm-model-generator上跟踪此问题:Issue #13