我有两个表要映射到一个看起来像这样的类:
CUSTOMER_INFO_CLASS.cs
----------------------
Id (CUSTOMER table)
CustomerName (CUSTOMER table)
CustomerTypeDesc (CUSTOMER_TYPE table)
我尝试使用join进行操作,如下所示:
Table("CUSTOMER");
Id(x => x.ID).Length(10).Column("CustomerId");
Map(x => x.CustomerName);
Join("CUSTOMER_TYPE", m =>
{
m.Optional();
m.Map(x => x.CustomerTypeDesc);
m.KeyColumn("CustomerType");
});
问题是我尝试链接这两个表的字段不是其中任何一个的主键。 (默认情况下,由定义为ID的字段完成的连接) 所以我发现对于CUSTOMER_TYPE表我可以通过“KeyColumn”定义字段 如何定义CUSTOMER表中的相关列将是CustomerTypeCode而不是CustomerId? (如果我可以的话)
最后,sql查询应如下所示:
Select Id, CustomerName, CustomerAddress, CustomerTypeDesc
From CUSTOMER t1
Left join CUSTOMER_TYPE t2
On t1.CustomerTypeCode = t2.CustomerType
答案 0 :(得分:0)
如果Customer表将CustomerType成员映射到CustomerType表的主键,则Hibernate应自动为您执行连接。
是否有原因导致CustomerType未通过正常的外键引用链接?