@Action(semantics = SemanticsOf.NON_IDEMPOTENT) @ActionLayout(contributed = Contributed.AS_NEITHER) public BankAccount newBankAccount( final @ParameterLayout(named = "Owner") Party owner, final @ParameterLayout(named = "IBAN", typicalLength = JdoColumnLength.BankAccount.IBAN) String iban) { final BankAccount bankAccount = newTransientInstance(BankAccount.class); bankAccount.setReference(iban); bankAccount.setName(iban); bankAccount.setIban(iban); bankAccount.refresh(); persistIfNotAlready(bankAccount); bankAccount.setOwner(owner); return bankAccount; }