我正在尝试使用android作业调度程序来安排作业立即执行一次.
JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.cancel(1);
PersistableBundle bundle = new PersistableBundle();
bundle.putInt(JobFlags.KEY_PERIODIC_SYNC_JOB, JobFlags.JOB_TYPE_INITIAL_FETCH);
jobScheduler.schedule(new JobInfo.Builder(1,
new ComponentName(context, SyncJobLollipop.class))
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setExtras(bundle)
.setMinimumLatency(10)
.setOverrideDeadline(24 * 3600 * 1000)
.build());
Run Code Online (Sandbox Code Playgroud)
但它运行约3 4次.这有什么不对?
这是工作类本身:
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class SyncJobLollipop extends JobService implements JobFinishedListener {
@Inject
SyncJobBackend jobBackend;
private JobParameters jobParameters;
@Override
public boolean onStartJob(JobParameters jobParameters) {
((MyApplication)getApplication()).getAppComponent().inject(this);
this.jobParameters = jobParameters;
PersistableBundle bundle = jobParameters.getExtras();
int type = bundle.getInt(JobFlags.KEY_PERIODIC_SYNC_JOB);
jobBackend.onStartJob(type, this);
return true;
}
@Override
public boolean onStopJob(JobParameters jobParameters) {
jobBackend.onStopJob();
return false; …Run Code Online (Sandbox Code Playgroud) 可以说我们有两个实体Entity Node和Entity Cluster。A Cluster有很多Node。一个Node可以属于多个Cluster。因此,Cluster其中有一个@ManyToMany注释。但是Node不知道Cluster它属于哪个(有意)。
当我删除a时,Cluster我想保留它所有的Nodes(将来我可以将它们添加Node到另一个s中Cluster)。所以我不需要 Cascade.DELETE。但是,如果删除a Node,Cluster则应更新所有它所属的对象(Node将从中删除它们)。
使用JPA处理此问题的最佳方法是什么?