我有两个表在我的域模型中被视为单个实体。
我通过在连接表的属性上调用IgnoreProperty然后使用Join和每个属性的Map来将它们连接到我的IAutoMappingOverride中。
此配置有效,但我在尝试对连接表的列进行过滤时丢失了。如果我打电话给以下人员:
Session.CreateCriteria<PrimaryEntity>()
.CreateCriteria("ExtraPropertiesTable", JoinType.InnerJoin)
.Add(Expression.Eq("Language", language)) // Column on ExtraPropertiesTable
.List(primaryEntitiesList);
我得到以下异常:
QueryException:无法解析属性:ExtraPropertiesTable:PrimaryEntity
我也尝试过DetachedCriteria无济于事。
有什么想法吗?
答案 0 :(得分:1)
如果两个表都映射到同一个实体,则不必在hibernate查询中进行连接,只应引用该实体,hibernate将在其生成的SQL查询中生成连接。此外,CreateCriteria方法需要映射实体的名称,而不是表。