我的代码使用sql结果Map将查询结果Map到dto,并使用这些dto创建列表,但在我的数据库中id可以是 null
这给了我绘制Map的麻烦。这就是为什么我不想用它来代替它,有没有办法为这些dto生成id而不是从sql查询中获取它们?我不能更改我的sql数据,因为它不是个人数据。
我的Map代码看起来像这样,仅供参考我没有使用 @ConstructorResult
,我不知道这两者有什么区别 @EntityResult
以及 @ConstructorResult
但在实体中,我给出了列名,并且我必须将我的表列与我的dto类相匹配。
@SqlResultSetMapping(
name = "ApplicationMapping",
entities = @EntityResult(entityClass = com.sqlresultsetmapping.ApplicationDto.class,
fields = {
@FieldResult(name = "name", column = "name"),
@FieldResult(name = "create", column = "create"),
@FieldResult(name = "update", column = "update"),
@FieldResult(name = "version", column = "version"),
@FieldResult(name = "image", column = "image"),
@FieldResult(name = "id", column = "id")}))
1条答案
按热度按时间ttisahbt1#
您必须使用constructorresult,因为您需要一个dto作为结果。
entityresult用于将sql结果Map到实体。
如果使用constructorresult,则id列中的null将无关紧要。但是对于entityresult,实体必须有一个id。