0

我正在使用 MyBatis Generator 生成类似于我的数据库结构的 POJO 对象。我还想在每个具有一对多关系的对象中都有一个列表属性。这是可以实现的(“C# 类似的类生成”)吗?提前致谢


使用 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.

有没有办法使这项工作,以便我只能从数据库中检索那些具有CodeType匹配我的列表的条目CodeType?我试图避免必须检索所有条目(这是一个大表)并在内存中匹配它们。

我知道我可以尝试类似的东西

var query = myTable.Where(a => listOfTypes.Contains(a.Type) && listOfCodes.Contains(a.Codes))

但这会产生一些虚假匹配,其中类型和代码来自我原始列表中的不同对。

4

1 回答 1

0

抱歉不行。

MyBatis Generator 不支持生成器需要通过其他表确认的一对一/多关系。

文件所述:

MBG 试图对大部分简单 CRUD(创建、检索、更新、删除)的数据库操作产生重大影响。您仍然需要为联接查询或存储过程编写SQL 和对象代码。

关于 POJO,MBG 生成以下字段/类:

与表的主键匹配的类(如果有主键)

匹配表的非主键字段的类(BLOB 字段除外)

包含表的 BLOB 字段的类(如果表有 BLOB 字段)

启用动态选择、更新和删除的类

于 2014-08-21T10:32:18.697 回答