Vaadin grid - restrict concurrent modification of record
I need to restrict that multiple users can't edit same record at the same time.
Any idea how to do that in vaadin grid, what would be the best approach? I'm using vaadin flow.
thanks
java vaadin vaadin8 vaadin-grid vaadin10
add a comment |
I need to restrict that multiple users can't edit same record at the same time.
Any idea how to do that in vaadin grid, what would be the best approach? I'm using vaadin flow.
thanks
java vaadin vaadin8 vaadin-grid vaadin10
add a comment |
I need to restrict that multiple users can't edit same record at the same time.
Any idea how to do that in vaadin grid, what would be the best approach? I'm using vaadin flow.
thanks
java vaadin vaadin8 vaadin-grid vaadin10
I need to restrict that multiple users can't edit same record at the same time.
Any idea how to do that in vaadin grid, what would be the best approach? I'm using vaadin flow.
thanks
java vaadin vaadin8 vaadin-grid vaadin10
java vaadin vaadin8 vaadin-grid vaadin10
asked Nov 23 '18 at 12:33
user1598696user1598696
318317
318317
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
This is not a Vaadin question. This is generic software architecture question.
You need to decide in which layer you will control this. You can rely on optimistic locking on data base layer. This allows Editing being enabled for everybody, but you get exception if someone did it first and then you handle the exception in some manner you like.
You can also create locking mechanism on service / business logic layer. Editing locks the service I.e. allow the editor open if service is not locked, release lock when cancel / save. This is called pessimistic locking.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53446802%2fvaadin-grid-restrict-concurrent-modification-of-record%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This is not a Vaadin question. This is generic software architecture question.
You need to decide in which layer you will control this. You can rely on optimistic locking on data base layer. This allows Editing being enabled for everybody, but you get exception if someone did it first and then you handle the exception in some manner you like.
You can also create locking mechanism on service / business logic layer. Editing locks the service I.e. allow the editor open if service is not locked, release lock when cancel / save. This is called pessimistic locking.
add a comment |
This is not a Vaadin question. This is generic software architecture question.
You need to decide in which layer you will control this. You can rely on optimistic locking on data base layer. This allows Editing being enabled for everybody, but you get exception if someone did it first and then you handle the exception in some manner you like.
You can also create locking mechanism on service / business logic layer. Editing locks the service I.e. allow the editor open if service is not locked, release lock when cancel / save. This is called pessimistic locking.
add a comment |
This is not a Vaadin question. This is generic software architecture question.
You need to decide in which layer you will control this. You can rely on optimistic locking on data base layer. This allows Editing being enabled for everybody, but you get exception if someone did it first and then you handle the exception in some manner you like.
You can also create locking mechanism on service / business logic layer. Editing locks the service I.e. allow the editor open if service is not locked, release lock when cancel / save. This is called pessimistic locking.
This is not a Vaadin question. This is generic software architecture question.
You need to decide in which layer you will control this. You can rely on optimistic locking on data base layer. This allows Editing being enabled for everybody, but you get exception if someone did it first and then you handle the exception in some manner you like.
You can also create locking mechanism on service / business logic layer. Editing locks the service I.e. allow the editor open if service is not locked, release lock when cancel / save. This is called pessimistic locking.
answered Nov 24 '18 at 18:32
Tatu LundTatu Lund
2,296139
2,296139
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53446802%2fvaadin-grid-restrict-concurrent-modification-of-record%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown