【发布时间】:2016-05-21 21:26:22
【问题描述】:
在我正在开发的Android 应用程序中,对象Debt 表示数据库中debts 表中的一个条目。
我创建了一个 Debt 类型的对象队列和一个名为 DatabaseWriter 的线程。当我在这个队列中放置一个债务时,线程被唤醒并负责在数据库中创建一个新条目,其中包含所述 Debt 对象中包含的数据。
我的问题如下:
Debt 对象必须先写入数据库,然后我才能知道它的主键(整数类型),它设置为自动增量
同时,我正在使用数据库主键来识别应用程序中的Debt 对象。例如,我有 HashMaps,其中键是数据库中的主键,值是 Debt 对象本身。
结论是我不能同时更新数据库,因为我不能使用新创建的 Debt 对象,直到我知道它们在数据库中的主键。使用此模型,我剩下的唯一可能就是按顺序执行所有操作。
有没有办法解决这个问题?有什么设计模式可以解决它?我是数据库新手。
【问题讨论】:
标签: java database multithreading concurrency queue