小编Sul*_*eyo的帖子

使用保留字(类型名称)作为 ExpandoObject 或 Dynamic 属性

如何使用保留字的键设置 ExpandoObject 的属性?

像这样:

dynamic query = new ExpandoObject();
query.size = 10;
query.date = "2017-04-27";

dynamic match = new {
  query = query,
  bool = true
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net dynamic expandoobject elasticsearch

5
推荐指数
1
解决办法
895
查看次数

Spring JPA:从异步方法处理时数据未保存到数据库

我有一个使用 Spring JPA 的应用程序,并使用 @Async spring 注释执行一些后台进程。该过程需要将参数保存在数据库中,或者如果参数已经存在则更新数据库。

这不能正常工作,因为在 @Async 方法完成后我的数据实体没有保留在数据库中。但是当我从方法中删除 @Async 注释时,一切正常。我的数据已保存或更新到数据库。

有谁知道可能出了什么问题或者我可能错过了什么?

谢谢。

** 更新 [代码示例]

异步服务

@Service
@EnableAsync
class AsyncService() {
    @Async
    public void process(firstEntity, secondEntity) {
        firstEntity = prepareParams(firstEntity);
        secondEntity = prepareParams(secondEntity);
        save(firstEntity, secondEntity);
    }
}
Run Code Online (Sandbox Code Playgroud)

实体关系服务

@Transactional
@Service
class EntityRelationService() {

    private SecondEntityRepo secondEntityRepo;

    @Autowired
    public EntityRelationService(SecondEntityRepo secondEntityRepo) {
        this.secondEntityRepo = secondEntityRepo;
    }

    @Transactional
    public void save(p1, p2) {
        p2.setRelation(p1);

        this.secondEntityRepo(p2);
    }
}
Run Code Online (Sandbox Code Playgroud)

豆配置

@Bean
@Primary
@ConfigurationProperties(prefix = "app.database")
public DataSource dataSource() {
    DriverManagerDataSource dataSource = …
Run Code Online (Sandbox Code Playgroud)

spring hibernate spring-data spring-data-jpa spring-boot

5
推荐指数
1
解决办法
6787
查看次数

JedisPoolConfig 参数的使用 *blockWhenExhausted*

所以我有一个项目,我使用Spring-Data-Redis来缓存一些数据。该Spring-Data-Redis是用bean的配置设置与Jedis。

我寻找JedisPoolConfig可以修改的参数来控制我的缓存和应用程序的行为。

我想知道属性的用途,blockWhenExhausted,它是可配置属性的一部分。据说默认值是true,这个默认值会调用什么行为?如果将该值更改为false,这将带来什么行为?

java apache-commons redis jedis spring-data-redis

3
推荐指数
1
解决办法
2345
查看次数

将JedisPoolConfig testOnBorrow设置为false

所以,目前在我的JedisPoolConfig bean中,我将参数testOnBorrow设置为true.看起来这种检索资源的速度较慢.

有一种情况是Jedis花30分钟从Redis中检索资源(在获取资源或离开之前多次调用方法(redis.clients.jedis.BinaryJedis:exists:144和java.lang.Thread:sleep)).

我认为我可以做的是将参数testOnBorrow设置为false以防止在读取资源之前对Redis进行PING调用.

所以,我的问题(我真的希望得到答案)是:

  1. "将此参数设置为我的应用程序的内容"?
  2. "这个解决方案真的有效吗?"
  3. "对于这种慢读问题,有没有更好的解决方案?"

java redis jedis spring-data-redis

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