我正在使用 MyBatis Generator 生成类似于我的数据库结构的 POJO 对象。我还想在每个具有一对多关系的对象中都有一个列表属性。这是可以实现的(“C# 类似的类生成”)吗?提前致谢
问问题
1418 次
使用 contains 匹配两个字段
我有一个数据库表,其中有一堆字段,包括一个被称为Type
和另一个被称为Code
。我还有一个封装在一个类中的列表Type
和对。Code
像这样的东西:
public class TypeAndCode
{
public byte Type { get; set; }
public int Code { get; set; }
// overrides for Equals and GetHashCode to compare if Type and Code are equal
}
现在我需要做的是从表中选择只有那些键入 AND 代码的条目与我的集合中的条目匹配。所以,例如,我尝试了这样的事情:
var query = myTable.Where(a => myTCList.Contains(new TypeAndCode() { Type = a.Type, Code = a.Code }).ToList();
但它会给我一个 NotSupportedException:
Unable to create a constant value of type 'TypeAndCode'. Only primitive types
or enumeration types are supported in this context.
有没有办法使这项工作,以便我只能从数据库中检索那些具有Code
和Type
匹配我的列表的条目Code
和Type
?我试图避免必须检索所有条目(这是一个大表)并在内存中匹配它们。
我知道我可以尝试类似的东西
var query = myTable.Where(a => listOfTypes.Contains(a.Type) && listOfCodes.Contains(a.Codes))
但这会产生一些虚假匹配,其中类型和代码来自我原始列表中的不同对。
1 回答
0
抱歉不行。
MyBatis Generator 不支持生成器需要通过其他表确认的一对一/多关系。
如文件所述:
MBG 试图对大部分简单 CRUD(创建、检索、更新、删除)的数据库操作产生重大影响。您仍然需要为联接查询或存储过程编写SQL 和对象代码。
关于 POJO,MBG 生成以下字段/类:
与表的主键匹配的类(如果有主键)
匹配表的非主键字段的类(BLOB 字段除外)
包含表的 BLOB 字段的类(如果表有 BLOB 字段)
启用动态选择、更新和删除的类
于 2014-08-21T10:32:18.697 回答