@Query和DTO之间的Clob映射

时间:2020-09-02 12:50:53

标签: java spring entity dto clob

希望你过得愉快。

我实际上长期困扰着一个问题,无法弄清楚我在哪里错了。 也许新的眼睛可以对我有所帮助。

我正在使用存储库:

@Repository
public interface Entity1Repository extends
        JpaRepository<Entity1, String> {

    

            
    @Query (value = "SELECT "
    + "x.contextTime, "
    + "x.FLOWID, "
    + "flow.STATUT, " 
    + "flow.ETAT,"
    + "flow.IDFONCTIONNEL "
    + "FROM ENTITY1 flow "
    + " INNER JOIN "
    + "(SELECT flowid  , min(CONTEXTTIMESTAMP) contextTime  "
    + " FROM ENTITY1 "
    + "GROUP BY flowid) x  on x.flowid = flow.flowid and x.contextTime = flow.CONTEXTTIMESTAMP"
    + " WHERE "
    + "flow.FLOWCODE = ?3 AND flow.CONTEXTTIMESTAMP BETWEEN ?1 AND ?2 "
    + "ORDER BY  contextTime desc  " , nativeQuery = true)
        

    
    
    public List<FlowDto> fetchAllProcessContextWithCriteriaAndFlowCode(
            String startDate, String endDate, String flowCode, String idf, String etat, String status);

映射到我的实体1


@NoArgsConstructor
@Data
@Entity
@Table(name = "ENTITY1")
public class ProcessContext implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Basic(optional = false)
    @Column(name = "CONTEXTID")
    private String contextId;

    @Basic(optional = false)
    @Column(name = "DATATS")
    @Temporal(TemporalType.TIMESTAMP)
    private Date datatS;


    @Basic(optional = false)
    @Column(name = "CONTEXTTIMESTAMP")
    @Temporal(TemporalType.TIMESTAMP)
    private Date contextTimestamp;

    @Column(name = "COLUMN1")
    private String column1;

    @Column(name = "COLUMN2")
    private String column2;

    @Lob
    @Column(name = "MSGPRIVATECONTEXT")
    private String msgPrivateContext;

    @Column(name = "ETAT")
    private String etat;
    
    @Column(name = "STATUT")
    private String statut;
   
    @Column(name = "IDFONCTIONNEL")
    @Lob
    private Clob idf;

并且我使用一个称为Flow DTO的接口DTO

public interface FlowDto {
    

    
    
    
    String  getContextTime();

    String getFlowCode();

    String getContextId();

    String getFlowId();

    String getEtat();

    String getLogRole();

    String getLogId();

    String getAppContextName();
    String getAppContextValue();

    String getIdf();
    
    Boolean getChecked();
    
    int getNbreError();

    String getMsgPrivateContext();

}

我的问题是,当我尝试从请求中获取值时,它适用于字符串中的所有列,但不适用于数据库中属于CLOBS的@Lob列。

您是否知道为什么我的映射对他们不起作用?

0 个答案:

没有答案