我的问题是: 我想在GAE数据存储中保留一个实体,如果它尚未保留。java在GAE环境中与多个JVM实例同步
我的代码的算法是:
select * from Employee where code=1234;
if record not found then:
persist it;
otherwise
do nothing;
这是很容易做到的,但它是在多线程环境是复杂的。当两个线程同时尝试执行上述查询时,会发生此问题。都得到null
所以这两个线程都是持久实体。因此,而不是只有一个,两个记录正在创建数据库 在这里我已经同步完整的方法,但由于GAE env中的多个jvm实例,它不起作用。
请建议我适当的解决方案。 我正在使用的我的技术堆栈:
Java,Spring,REST,GAE数据存储。
您使用[tag:google-cloud-datastore]还是[tag:google-cloud-sql]是因为您显示了psuedo SQL并且[tag:google-cloud-datastore]不支持该功能。目前还不清楚你在问什么,因为你用无关标签发送了垃圾邮件。请澄清。 –
我正在使用google-cloud-datastore,Psuedo Sql只是为了解释我的需求。 –