小编sni*_*guu的帖子

Spring @Transactional(Propagation.NEVER)应该创建hibernate会话吗?

让我们假设我们在spring(4.2.7)中正确配置了由hibernate(4.3.11)支持的jpa.启用了Hibernate一级缓存.我们使用声明式交易.我们有OuterBean

@Service
public class OuterBean {

    @Resource
    private UserDao userDao;

    @Resource
    private InnerBean innerBean;

    @Transactional(propagation = Propagation.NEVER)
    public void withoutTransaction(){
        User user = userDao.load(1l);
        System.out.println(user.getName());//return userName
        innerBean.withTransaction();
        user = userDao.load(1l);
        System.out.println(user.getName());//return userName instead of newUserName
    }

}
Run Code Online (Sandbox Code Playgroud)

从OuterBean调用的InnerBean:

@Service
public class InnerBean {

    @Resource
    private UserDao userDao;

    @Transactional
    public void withTransaction(){
        User user = userDao.load(1l);
        user.setName("newUserName");
    }
Run Code Online (Sandbox Code Playgroud)

}

user.getName()OuterBean 中的方法返回相同的值两次(第二次是在数据库中更新名称之后)是否正确?

换句话说,是否正确的行为@Transactional(propagation = Propagation.NEVER)为方法创建了hibernate会话withoutTransaction(),导致第二个调用user.getName()从hibernate读取第一级缓存而不是数据库?

编辑

为了更好地解释问题,我从hibernate会话的创建中附加了跟踪

TRACE org.hibernate.internal.SessionFactoryImpl$SessionBuilderImpl  - Opening Hibernate Session.  tenant=null, owner=org.hibernate.jpa.internal.EntityManagerImpl@c17285e …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa

25
推荐指数
2
解决办法
5632
查看次数

出现错误:> 处理“命令”/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java”已完成,退出值非零 1

任务“:Main.main()”执行失败。

进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/java''以非零退出值1完成

这是一个使用 Gradle 的 java 项目。不确定这个错误意味着什么。

java gradle

10
推荐指数
4
解决办法
3万
查看次数

Criteria子查询不为null

我想将以下子查询转换为使用hibernate子查询:

getCurrentSession().createQuery("from Employee where id in (select adminId from Department where adminId is not null)")
                   .list();
Run Code Online (Sandbox Code Playgroud)

任何人都可以请给我一个这种转换的例子,因为我读了一些例子,我仍然无法弄清楚如何做到这一点.

hibernate detachedcriteria hibernate-criteria

9
推荐指数
1
解决办法
2万
查看次数

如何在 Stripe 中更新客户默认支付方式?

假设我们已经创建了一种付款方式 - pm_xxx。当我们创建客户时,我们可以通过java代码将此方法作为默认付款方式附加到客户:

CustomerCreateParams.Builder customerCreateParamsBuilder = CustomerCreateParams.builder()
                    .setEmail(email)
                    .setPaymentMethod('pm_xxx');       
Customer.create(customerCreateParamsBuilder.build());
Run Code Online (Sandbox Code Playgroud)

不幸的是,更新客户的相应 api 不可用。所以问题是在 Stripe 中更新客户默认付款方式的首选方式是什么?

编辑:基于@karllekko 的回答,因为我的用例是定期付款,所以我结合了 2 个操作:将客户附加到付款方式:

paymentMethod.attach(PaymentMethodAttachParams.builder().setCustomer(customer.getId()).build());            
Run Code Online (Sandbox Code Playgroud)

并为客户发票设置默认付款方式:

customer.update(CustomerUpdateParams.builder().setInvoiceSettings(CustomerUpdateParams.InvoiceSettings.builder().setDefaultPaymentMethod(token).build()).build());
Run Code Online (Sandbox Code Playgroud)

java stripe-payments

9
推荐指数
2
解决办法
1万
查看次数

在 Pipeline SH 脚本中使用 Jenkins 环境变量

我没有找到在 sh 脚本中使用 jenkins 提供的 BUILD_NUMBER 的方法。我读了一些类似问题的答案,但似乎没有任何帮助。

node {
    echo "Build number 1 $BUILD_NUMBER"
    // output ok

    stage('stage1') {
        echo "Build number 2 $BUILD_NUMBER"
        // output ok

        def BUILD_NUMBER = "$BUILD_NUMBER"

        withCredentials([sshUserPrivateKey(credentialsId: 'github-rsa-key', variable: 'RSAKEY')]) {
            echo "Build number 3 " + BUILD_NUMBER
            // output ok

            echo "Build number 4 $BUILD_NUMBER"
            // output ok

            // -----------------

            sh 'echo $BUILD_NUMBER' // NullPointer
            sh "echo $BUILD_NUMBER" // NullPointer
            sh "echo \$BUILD_NUMBER" // NullPointer
            sh "echo BUILD_NUMBER" // NullPointer
            withEnv(["BUILD_NUMBER=BUILD_NUMBER"]) {
                sh "echo …
Run Code Online (Sandbox Code Playgroud)

environment-variables sh jenkins jenkins-pipeline

8
推荐指数
2
解决办法
3万
查看次数

如何获取 PaymentIntent next_action.type = redirect_to_url 而不是 use_stripe_sdk 进行订阅

我正在使用 Stripe 实现 Subscription*(已准备好 SCA)。我尝试处理https://stripe.com/docs/billing/subscriptions/payment#handling-action-required。在 Stripe 端创建订阅后,我得到了上面文档中的答案:

{
  "id": "sub_XXXXXXXXXXXXXXXXXXX",
  "object": "subscription",
  "status": "incomplete",
  ...
  "latest_invoice": {
    ...
    "payment_intent": {
      "status": "requires_action",
      ...
      "next_action": {
        "type": "use_stripe_sdk",
        ...
      },
      ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

根据文档https://stripe.com/docs/api/payment_intents/object#payment_intent_object-next_action-type next_action.type可以有两个值redirect_to_urluse_stripe_sdk

所以我的问题是如何获取next_action.type = redirect_to_url(而不是use_stripe_sdk)以及如何强制填充条纹next_action.redirect_to_url(因为我想在我的 UI 中自己处理它)?

* SO 上已经有一个类似的问题:https : //stackoverflow.com/questions/56490033/how-to-handle-use-stripe-sdk-through-php 但我的情况是创建我没有的订阅控制 PaymentIntent

stripe-payments

8
推荐指数
1
解决办法
3131
查看次数

如何通过组合表使用JpaSpecificationExecutor创建规范?

JpaSpecificationExecutor用于创建自定义查询.如何为以下SQL创建规范?

select * from employee e, address a where e.id=23415 and e.name="Deepak" and a.city="Leeds";
Run Code Online (Sandbox Code Playgroud)

Java类:

public static Specification<Employee> searchEmployee(final Map<String,String> myMap) {

    return new Specification<Employee>(){
        @Override
        public Predicate toPredicate(Root<Employee> root, CriteriaQuery<?> query, CriteriaBuilder cb) {

             //Need to query two tables Employee and Address  

           }
      }
Run Code Online (Sandbox Code Playgroud)

criteria-api jpa-2.0 spring-data spring-data-jpa

7
推荐指数
1
解决办法
9550
查看次数

如何在gitlab-ci中使用maven分离测试和构建阶段?

我想将maven阶段分开为buildtestdeploy

问题:我在这里把事情复杂化了吗?我是否应该只使用一个mvn clean package阶段,因为compiletest是在阶段期间由 Maven 隐式执行的package

.gitlab-ci.yml:

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script: mvn clean compile

test:
  stage: test
  script: mvn clean test

deploy:
  stage: deploy
  script: mvn clean package -Dmaven.test.skip=true
  #...continue with docker deployment...
Run Code Online (Sandbox Code Playgroud)

continuous-integration maven gitlab

7
推荐指数
1
解决办法
2071
查看次数

如何修剪詹金斯管道中的参数?

我正在使用管道设置参数化 jenkins 作业。我需要修剪修剪参数有什么建议吗?

在 jenkins 的新版本中,我可以获得参数。但是我不能修改参数。如果我使用 setValue(),它会给我 unsupportedException。

groovy jenkins jenkins-pipeline

6
推荐指数
2
解决办法
1万
查看次数

有 Stripe API 下载收据吗?

在 Stripe 支付系统中,对于下载 Invoice.pdf,我们可以Invoice通过 Stripe API 通过其 id 检索对象,然后检查字段Invoice.invoice_pdf 请参阅https://stripe.com/docs/api/invoices/object#invoice_object-invoice_pdf

有类似的方式获取收据吗?

在 Stripe Dashboard 上,两者都可用。看 在此输入图像描述

stripe-payments

6
推荐指数
2
解决办法
7073
查看次数