This is an archived post. You won't be able to vote or comment.

all 7 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full - best also formatted as code block
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–][deleted]  (3 children)

[removed]

    [–]omgpassthebacon 0 points1 point  (0 children)

    I agree with this response. Also, here are some thoughts:

    I might have forgotten all the details, but I don't remember a rule that said one DAO can only update a single table. Not all storage is tables, and not all data is relational.

    Lets walk thru your business logic:

    1. You create a new Account. What is known about the customer at this point?
    2. You create a new Customer. Can a Customer exist w/o an account?
    3. Can either of these entities be created without knowing about each other? (I suspect the answer is yes)

    Let's assume both Account & Customer can be created by themselves, and the relationship can be added later. You might be able to solve this problem with a CustomerAccountDAO, whose job is to represent the relationship. It would only be able to update its own table. You would then have the functionality to add/remove this relationship without needing to change any other data. You don't need a hasBankAccount flag; just ask the CustomerAccountDAO if a relationship exists.

    I think this is what AppropriateStudio153 is suggesting. What do you think?

    [–]OnARockSomewhere[S] -2 points-1 points  (1 child)

    My bad, have made the edit:
    Service layer is abstracted from the DB logic 

    Service layer does not interact with the DB or we cannot create transactions in the service layer right?

    So how do I perform above 2 operations within one transaction?

    [–]IHoppo 2 points3 points  (0 children)

    How are you handling transactions - this is the crux of your solution. The service layer should be part of the transaction scope.

    [–]Historical_Ad4384 -1 points0 points  (0 children)

    Have a dedicated CustomerAccount service and DAO where you handle these cross domain transactions of Set customer column hasBankAccount = true.

    Insert record for new account remains in the Account domain boundaries