【问题标题】:converting the jdbc query into JPA native query将 jdbc 查询转换为 JPA 本机查询
【发布时间】:2019-01-11 14:29:45
【问题描述】:

下面是使用 jdbc 编写的代码,现在我只想将其转换为 JPA 的本机查询,请让我 知道如何将以下使用 jdbc 的方法代码更改为本地查询等价物,非常感谢任何帮助, 这个方法只是将数据插入数据库,我已经初始化了JPA的实体管理器

public void insertATMLog(ATMLogRow ATMlLogRow)
    conn = getConnection();
           String sQuery = "insert into CTL_LOG " +
                            "( " +
                              " CTL_LOG_ID, " +
                              " HOME_ID, " +
                              " PERSON_ID, " +
                              " FROM_ADDRESS, " +
                              " TO_ADDRESS, " +
                              " SUBJECT, " +
                              " BODY, " +
                              " STATUS, " +
                              " SENT_DATE, " +
                              " CC_ADDRESS, " +
                              " BCC_ADDRESS, " +
                              " REPLY_TO, " +
                              " CUSTOMER_INSTITUTION_ID, " +
                              " EFT_TRANSACTION_ID " +
                              " , PARTNER_EMAIL_ADDRESS , CREATED_ON , FROM_ADDRESS_ALIAS, DELIVERY_CHANNEL" +
                              ")" +
                              " values (CTL_LOG_seq.nextval,?,?,?,?,?,?,?,sysdate,?,?,?,?,?,?,systimestamp,?,?)";
           pstmt = conn.prepareStatement(sQuery);

           pstmt.setInt(1,ATMlLogRow.homeID);
           pstmt.setInt(2,ATMlLogRow.personID);
           pstmt.setString(3,ATMlLogRow.fromAddress);
           pstmt.setString(4,ATMlLogRow.toAddress);
           pstmt.setString(5,ATMlLogRow.subject);
            PCUtils.setClobColumn(pstmt,6,ATMlLogRow.body);
             pstmt.setInt(7, status);
             pstmt.setString(8,ATMlLogRow.ccAddress);
           pstmt.setString(9,ATMlLogRow.bccAddress);
           pstmt.setString(10,ATMlLogRow.replyTo);
           if (ATMlLogRow.cfiID > 2)
                pstmt.setInt(11, ATMlLogRow.cfiID);
           else
                pstmt.setNull(11, Types.INTEGER);
           if (ATMlLogRow.eftTransactionID > 3)
                pstmt.setInt(12, ATMlLogRow.eftTransactionID);
           else
                pstmt.setNull(12, Types.INTEGER);
              pstmt.setString(13, ATMlLogRow.partnerEmailAddress);
                   pstmt.setString(14, ATMlLogRow.fromAddressEmailAlias);
           pstmt.setString(15, ATMlLogRow.deliveryChannel);
                       int count = pstmt.executeUpdate();

【问题讨论】:

  • 上网搜索JPA,以及如何使用它;那里有很多文件。本站不是为你转换东西

标签: jpa spring-data-jpa


【解决方案1】:

您似乎在询问 JPA 的基本知识。

首先你需要创建一个带有@Entity注解的POJO类。

然后你只需根据你的逻辑设置字段。

最后只需致电entityManager.persist

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-13
    • 2017-11-01
    • 2016-07-06
    • 2023-04-01
    • 2020-10-21
    • 2012-09-28
    • 2019-01-22
    • 1970-01-01
    相关资源
    最近更新 更多