我正面临着一个挑战,而工作类型映射的查询构建通过DoctrineSQL查询生成器(从DBAL,而不是ORM)使用MySQL 8。
执行的查询从数据库返回以下三列:
但是,通过我当前的实现(例如简化),没有值映射到它们的PHP对应项。
$queryBuilder = $this->entityManager->getConnection()->createQueryBuilder();
$result = $queryBuilder
->select([
'st.user_id',
'st.starts_at',
'st.ends_at',
])
->from('some_table', 'st')
->execute()
->fetchAll();
fetchAll()方法返回的结果返回一个数组
当然,我可以通过迭代/映射从数据库中获取的结果来进行类型映射/强制转换,但我想知道在原则中是否有其他方法来实现这一点(可能通过为SQL查询生成器注册som类型的ResultsMapping或类似的方法)。如果这确实是可能的,那么惯用的方法是什么?
谢谢。
您是否映射了要获取的对象的数据/列?在symfony项目中使用原则时(我猜纯PHP项目也是如此,这里对此进行了解释),您指的是from()方法中的实体类,因此,例如,如果映射对象是Acme\Model\SomeObject
,则需要将对象名称空间和名称传递给from()方法-
给定一组C++概念: 但是样板文件穿过屋顶:)
不是Android系统的问题。 另见: 如何从Firebase android中获取所有子列表
我想进行一个复杂的查询,并将结果映射到DTO中。DTO如下所示: 我的存储库接口是从 。这抛出了一个 ,因为 本身不是实体。 存储库是: 查询从其他实体获取数据以构建DTO。有没有办法将每个列映射到DTO?我试图用下面的查询映射它,但它仍然得到<code>而不是托管类。
我尝试使用的将本机SQL查询映射到POJO类,如下所示: 然后,为了在创建本机查询时使用声明的结果集映射,我通过它的名称引用它: 但这对我不起作用,我得到以下错误:
几个小时以来,我一直在努力让MapStruct为JAXB生成的类生成有效的映射器。这些类的特殊性在于,它们既没有集合的setter,也没有集合的adder。例如: 类avove有一个getter和一个属性设置器(本例中为firstName),但对于集合(此处列出),它只有一个getter。因此,消费者有责任通过getAddressTypes(add(new AddressType(...))进行访
例如,我有以下接口映射器: 在代码中,您可以看到映射和一些默认方法,其中包含其他映射。如何在Mapstruct映射中使用这些方法,以便Mapstruct使用这些方法在字段中填充值?