package study.ejb3.projectbank.account; import java.io.Serializable; import javax.persistence.Access; import javax.persistence.AccessType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; @Entity @Table(name = "ACCOUNT") @Access(AccessType.FIELD) // resultClass to fix the "Pure native scalar queries are not yet supported" error @NamedQueries({ @NamedQuery(name = Account.GET_ALL, query = "select ac from Account ac"), @NamedQuery(name = Account.FIND_ACCOUNT, query = "select ac from Account ac where ac.agencyNumber = ?1 and ac.accountNumber = ?2") }) public class Account implements Serializable { private static final long serialVersionUID = -8848403439586665662L; @Id @Column(name = "AGENCY_NUMBER", nullable = false) private long agencyNumber; @Id @Column(name = "ACCOUNT_NUMBER", nullable = false) private long accountNumber; @Column(name = "NAME", nullable = false) private String name; @Column(name = "BALANCE", nullable = false) private double balance; public static final String GET_ALL = "Account.getAll"; public static final String FIND_ACCOUNT = "Account.findAccount"; public Account() { } public Account(long agencyNumber, String name, double balance) { this.agencyNumber = agencyNumber; this.name = name; this.balance = balance; } public Account(long agency, long accountNumber) { this.agencyNumber = agency; this.accountNumber = accountNumber; } public long getAgencyNumber() { return agencyNumber; } public void setAgencyNumber(long agencyNumber) { this.agencyNumber = agencyNumber; } public long getAccountNumber() { return accountNumber; } public void setAccountNumber(long accountNumber) { this.accountNumber = accountNumber; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } }