JPQL语句查询出来的数据如何直接用DTO去接
2018-01-11 17:55
357 查看
1.JPQL语句这样写的:
@Repository
public interface IEntitlementRelevantEntitlementViewRepository extends JpaRepository<RelevantEntitlementView, String>
{
/**
*
* Title: findRelevantEntitlementViewByEntlGuid Description: through entitlement guid getting
* RelevantEntitlementViews
*
* @param entitlementGuid
* @return List<RelevantEntitlementView>
*/
@Query(value = "select new com.sap.csc.ems.admin.model.dto.entitlement.repository.RelevantEntlViewResponseDto(T.entitlementNo, T.entitlementType, T.sourceDocNo, T.sourceItemNo, T.relevantEntlPKView.relation, T.relevantEntlPKView.relevantEntlGuid)"
+ " from RelevantEntitlementView T where T.relevantEntlPKView.guid = ?1 and T.relevantEntlPKView.langCode = ?2")
List<RelevantEntlViewResponseDto> findRelevantEntitlementViewsByEntlGuid(String entitlementGuid, String langCode);
}
2.接收的Dto定义这样的:
public class RelevantEntlViewResponseDto implements Serializable, Comparable<RelevantEntlViewResponseDto>
{
private static final long serialVersionUID = 2684804377793829074L;
private Long entitlementNo;
private String entitlementType;
private String sourceDocNo;
private String sourceItemNo;
private String relation;
private String guid;
public RelevantEntlViewResponseDto()
{
super();
}
public RelevantEntlViewResponseDto(Long entitlementNo, String entitlementType, String sourceDocNo, String sourceItemNo, String relation,
String guid)
{
super();
this.entitlementNo = entitlementNo;
this.entitlementType = entitlementType;
this.sourceDocNo = sourceDocNo;
this.sourceItemNo = sourceItemNo;
this.relation = relation;
this.guid = guid;
}
@Override
public int compareTo(RelevantEntlViewResponseDto responseDto)
{
//return this.getEntitlementNo().compareTo(responseDto.getEntitlementNo());
return this.entitlementNo > responseDto.getEntitlementNo() ? 1 : -1;
}
}
3.RelevantEntitlementView 的定义:
@Entity(name = "")
@Table(name = "")
public class RelevantEntitlementView implements Serializable
{
private static final long serialVersionUID = -2203166632368793389L;
@Column(name = HanaDbColumnConstants.ENTITLEMENT_TYPE)
private String entitlementType;
@Column(name = HanaDbColumnConstants.RELEVANT_ENTITLEMENT_NO)
private long entitlementNo;
@Column(name = HanaDbColumnConstants.RELEVANT_ENTITLEMENT_REF_DOC_NO)
private String sourceDocNo;
@Column(name = HanaDbColumnConstants.RELEVANT_ENTITLEMENT_REF_ITEM_NO)
private String sourceItemNo;
@EmbeddedId
private RelevantEntitlementPKView relevantEntlPKView;
}
4.RelevantEntitlementPKView 定义:
@Embeddable
public class RelevantEntitlementPKView implements Serializable
{
private static final long serialVersionUID = -1335267199925253148L;
@Column(name = HanaDbColumnConstants.ENTITLEMENT_GUID, nullable = false)
private String guid;
@Column(name = HanaDbColumnConstants.RELEVANT_ENTITLEMENT_GUID, nullable = false)
private String relevantEntlGuid;
@Column(name = HanaDbColumnConstants.RELATION)
private String relation;
}
这样就不用在通过view去接收之后再get,set进dto。通过构造函数直接用Dto接收更加方便!
@Repository
public interface IEntitlementRelevantEntitlementViewRepository extends JpaRepository<RelevantEntitlementView, String>
{
/**
*
* Title: findRelevantEntitlementViewByEntlGuid Description: through entitlement guid getting
* RelevantEntitlementViews
*
* @param entitlementGuid
* @return List<RelevantEntitlementView>
*/
@Query(value = "select new com.sap.csc.ems.admin.model.dto.entitlement.repository.RelevantEntlViewResponseDto(T.entitlementNo, T.entitlementType, T.sourceDocNo, T.sourceItemNo, T.relevantEntlPKView.relation, T.relevantEntlPKView.relevantEntlGuid)"
+ " from RelevantEntitlementView T where T.relevantEntlPKView.guid = ?1 and T.relevantEntlPKView.langCode = ?2")
List<RelevantEntlViewResponseDto> findRelevantEntitlementViewsByEntlGuid(String entitlementGuid, String langCode);
}
2.接收的Dto定义这样的:
public class RelevantEntlViewResponseDto implements Serializable, Comparable<RelevantEntlViewResponseDto>
{
private static final long serialVersionUID = 2684804377793829074L;
private Long entitlementNo;
private String entitlementType;
private String sourceDocNo;
private String sourceItemNo;
private String relation;
private String guid;
public RelevantEntlViewResponseDto()
{
super();
}
public RelevantEntlViewResponseDto(Long entitlementNo, String entitlementType, String sourceDocNo, String sourceItemNo, String relation,
String guid)
{
super();
this.entitlementNo = entitlementNo;
this.entitlementType = entitlementType;
this.sourceDocNo = sourceDocNo;
this.sourceItemNo = sourceItemNo;
this.relation = relation;
this.guid = guid;
}
@Override
public int compareTo(RelevantEntlViewResponseDto responseDto)
{
//return this.getEntitlementNo().compareTo(responseDto.getEntitlementNo());
return this.entitlementNo > responseDto.getEntitlementNo() ? 1 : -1;
}
}
3.RelevantEntitlementView 的定义:
@Entity(name = "")
@Table(name = "")
public class RelevantEntitlementView implements Serializable
{
private static final long serialVersionUID = -2203166632368793389L;
@Column(name = HanaDbColumnConstants.ENTITLEMENT_TYPE)
private String entitlementType;
@Column(name = HanaDbColumnConstants.RELEVANT_ENTITLEMENT_NO)
private long entitlementNo;
@Column(name = HanaDbColumnConstants.RELEVANT_ENTITLEMENT_REF_DOC_NO)
private String sourceDocNo;
@Column(name = HanaDbColumnConstants.RELEVANT_ENTITLEMENT_REF_ITEM_NO)
private String sourceItemNo;
@EmbeddedId
private RelevantEntitlementPKView relevantEntlPKView;
}
4.RelevantEntitlementPKView 定义:
@Embeddable
public class RelevantEntitlementPKView implements Serializable
{
private static final long serialVersionUID = -1335267199925253148L;
@Column(name = HanaDbColumnConstants.ENTITLEMENT_GUID, nullable = false)
private String guid;
@Column(name = HanaDbColumnConstants.RELEVANT_ENTITLEMENT_GUID, nullable = false)
private String relevantEntlGuid;
@Column(name = HanaDbColumnConstants.RELATION)
private String relation;
}
这样就不用在通过view去接收之后再get,set进dto。通过构造函数直接用Dto接收更加方便!
相关文章推荐
- 如何用SQL语句查询Excel数据?
- SQL语句 如何把从一个表中查出来数据插入到另一个表中
- 如何用SQL语句查询一个数据表所有字段的类型
- mysql的sql语句中直接计算时间 查询昨天 一周前 一月前 一年前的数据的方法
- 如何将从一个表中查询出来的数据一次性的添加到另一个表
- 存储过程--把查询出来的数据直接插入表
- 如何用SQL语句查询Excel数据?
- hibernate使用createQuery(hql)语句仅查询部分字段,应如何获得数据
- 控制sql语句查询出来的浮点类型数据小数点后的位数
- 如何在有限的内存的情况下,找到大量数据中重复查询次数最多的语句
- 如何用SQL语句查询Excel数据?
- 原!!mybatis如何直接 执行传入的任意sql语句 并按照顺序取出查询的结果集
- sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID
- Hibernate的hql语句查询不到内容,但是库里有数据,直接执行SQL也能执行,能得到值,返回值取不到
- mybatis如何直接 执行传入的任意sql语句 并按照顺序取出查询的结果集
- SQL命令语句进行大数据查询如何进行优化
- 在hibernate3中如何利用HQL语句查询出对象中的部分数据并且返回该对象?
- SQL语句:orac 3ff0 le中如何插入Date类型的数据和根据Date数据进行查询的方法
- 如何用SQL语句查询Excel数据?
- mysql的sql语句中直接计算时间 查询昨天 一周前 一月前 一年前的数据的方法