考虑一个具有3个属性{id,name,age}的Person id形成为名称||年龄。 获取查询仅由Id(在创建记录的同一事务中)
起作用 @Transactional
public void test(String id,String id2 ) {
personService.save(new Person("abc","123"));
Person person = repository.findByNameAndAge("abc", "23"); //doesn't work in same transaction
//however find by Id column works in same transaction works
repository.findOne("abc||23")
}
来自另一个交易电话
repository.findByNameAndAge("abc", "23")
返回结果,但在创建该记录的同一事务中,它不会返回任何结果。
这里的存储库是
public interface PersonRepository extends GemfireRepository<RecordRevision, String> {
List<Person> findByNameAndAge(String name, String age);
区域是REPLICATE_PERSISTENT,我正在使用PDX序列化 该调用甚至可以在同一个事务中工作,这是否是任何已知问题?
答案 0 :(得分:0)
这是GemFire [[1]]中的已知限制。查询引擎未看到事务状态。按id查找转换为GemFire region.get(),它可以看到事务状态。