| Hi,I am dusting off some old prototype code that last worked on Hibernate JPA1.0, Glassfish 3.x to Hibernate 4.3.7-Final, Glassfish 4 and JPA2.1. I am seeing an odd problem where an @Entertity class cannot be cast to it's interface (this previously worked for many many months).
 
 Here is a small example:
 
 @Entity
 @Table(name = "accounts")
 public class UserAccountBean implements Serializable,UserAccount {
 
 /**
 *
 */
 private static final long serialVersionUID = 6603302682644224769L;
 
 @Id
 @SequenceGenerator(name = "usersIdSequence", sequenceName = "users_id_seq", allocationSize = 1)
 @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "usersIdSequence")
 @Column(name = "id", nullable = false)
 private Integer id;
 
 ... various fields and accessors etc.
 }
 
 public interface UserAccount extends Serializable {
 
 Employee getEmployee();
 
 Customer getCustomer();
 
 .. more accessors
 
 }
 
 
 And the calling code (showing problem):
 
 @Override
 public UserAccount authenticateUser(final String username, final String password) {
 Query query = em.createQuery("select u from UserAccountBean u where u.username = :username");
 query.setParameter("username", username);
 List<UserAccount>userList = query.getResultList();
 
 boolean test = userList != null;
 
 test = userList.size() == 1; // this works and shows 1 entry was retrieved - using a debugger I can see it is correct
 
 test = userList.get(0).getPassword().equals(password); // this goes BANG! on the get(0) where it performs a cast returning from the container
 
 }
 
 
 Warning:   A system exception occurred during an invocation on EJB UserAccountServiceBean, method: public <package>.UserAccount <package>.UserAccountServiceBean.authenticateUser(java.lang.String,java.lang.String)
 Warning:   javax.ejb.EJBException
 
 Caused by: java.lang.ClassCastException: <package>.UserAccountBean cannot be cast to <package>.UserAccount
 
 Any ideas? has something changed in this area? looks pretty simple and standard to me...
 
 </scratching head>
 
 
 |