From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../src/examples/entity/intro/BankBean.java | 119 +++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/EJB 3.0 Code/Gerald Examples/src/examples/entity/intro/BankBean.java (limited to 'Master/Reference Architectures and Patterns/EJB 3.0 Code/Gerald Examples/src/examples/entity/intro/BankBean.java') diff --git a/Master/Reference Architectures and Patterns/EJB 3.0 Code/Gerald Examples/src/examples/entity/intro/BankBean.java b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Gerald Examples/src/examples/entity/intro/BankBean.java new file mode 100644 index 0000000..de5e59a --- /dev/null +++ b/Master/Reference Architectures and Patterns/EJB 3.0 Code/Gerald Examples/src/examples/entity/intro/BankBean.java @@ -0,0 +1,119 @@ +package examples.entity.intro; + +import java.util.List; + +import javax.ejb.Stateless; +import javax.ejb.Remote; +import javax.persistence.*; + +/** + * Stateless session bean facade for account entities, remotely accessible + */ +@Stateless +@Remote(Bank.class) +@EntityListener(MyListener.class) +public class BankBean implements Bank { + /** + * The entity manager object, injected by the container + */ + @PersistenceContext + private EntityManager manager; + + public List listAccounts() { + //Query query = manager.createQuery("SELECT a FROM Account a"); + Query query = manager.createNamedQuery("findThem"); + return query.getResultList(); + } + + public void printBigAccounts() { + Query query = + manager.createQuery("SELECT a FROM Account a WHERE a.balance > 1000"); + + System.out.println("Got " + query.getResultList().size() + " records."); + + // do sth else in the meantime + try { + Thread.sleep(15000); + } catch (InterruptedException e ) + {} + + query = + manager.createQuery("SELECT a FROM Account a WHERE a.balance > 1000"); + + System.out.println("Got " + query.getResultList().size() + " records."); + } + + + public Account openAccount(String ownerName) { + Account account = new Account(); + account.ownerName = ownerName; + System.out.println("Entity belongs to persistence context: " + + manager.contains(account)); + manager.persist(account); + System.out.println("Entity belongs to persistence context: " + + manager.contains(account)); + return account; + } + + public Account openAccount(String ownerName, int accNum) { + Account account = new Account(); + account.ownerName = ownerName; + account.accountNumber = accNum; + System.out.println("Entity belongs to persistence context: " + + manager.contains(account)); + manager.persist(account); + System.out.println("Entity belongs to persistence context: " + + manager.contains(account)); + return account; + } + + public int getBalance(int accountNumber) { + Account account = manager.find(Account.class, accountNumber); + return account.balance; + } + + public void deposit(int accountNumber, int amount) { + Account account = manager.find(Account.class, accountNumber); + account.balance += amount; + } + + public int withdraw(int accountNumber, int amount) { + Account account = manager.find(Account.class, accountNumber); + System.out.println("Withdrawing... " ); + + account.balance -= amount; + System.out.println("... amount now... " + account.balance ); + manager.flush(); + return amount; + } + + public void close(int accountNumber) { + Account account = manager.find(Account.class, accountNumber); + try { + Thread.sleep(20000); + } catch (InterruptedException e ) + {} + manager.remove(account); + try { + Thread.sleep(20000); + } catch (InterruptedException e ) + {} + } + + public void update(Account a) { + manager.merge(a); + } + + public void checkBalance(int accountNumber) { + System.out.println("Checking... sleep"); + try { + Thread.sleep(3000); + } catch (InterruptedException e ) + {} + Account account = manager.find(Account.class, accountNumber); + manager.refresh(account); + int b = account.balance; + System.out.println("Checking... " + b ); + } + +} -- cgit v1.2.3