I have a query that works fine in OC4J (I am developing in JDeveloper) and when I deploy it to Jboss 4.05GA I get an error on deployment.
Code:
12:11:52,405 ERROR [SessionFactoryImpl] Error in named query: Users.findAllByProviderIdorg.hibernate.QueryException: could not resolve property: providerId of: org.usiis.model.ProviderUsers [select o from org.usiis.model.Users o Where o.providerUsersList2.providers.providerId = :providerId order by o.username]
at org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyE
Here are the EJBs in question
Code:
package org.usiis.model;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.NamedQueries;
import javax.persistence.OneToMany;
@Entity
@NamedQueries({
@NamedQuery(name = "Users.findAll", query = "select o from Users o"),
@NamedQuery(name = "Users.findOneByUsernamePasswordProvider",
query = "select o from Users o Where " +
"o.username = :username " +
"AND o.password = :password " +
"AND o.providerUsersList2.providers.providerId = :providerId"),
@NamedQuery(name = "Users.findAllByProviderId",
query = "select o from Users o Where o.providerUsersList2.providers.providerId = :providerId order by o.username")
})
public class Users implements Serializable {
@Column(name="DATE_CREATED", nullable = false)
private Timestamp dateCreated;
@Column(name="DATE_END")
private Timestamp dateEnd;
private Timestamp dob;
@Column(name="FIRST_NAME", nullable = false)
private String firstName;
@Column(name="LAST_NAME", nullable = false)
private String lastName;
@Column(name="MIDDLE_NAME")
private String middleName;
private String note;
@Column(name="OCCUPATION_CODE")
private String occupationCode;
private String password;
@Column(name="PASSWORD_EXPIRE_DATE")
private Timestamp passwordExpireDate;
private String username;
@Id
@Column(name="USER_ID", nullable = false)
private Long userId;
@OneToMany(mappedBy = "users")
private List<ProviderUserServices> providerUserServicesList;
@OneToMany(mappedBy = "users")
private List<UsersGlobal> usersGlobalList;
@OneToMany(mappedBy = "users1")
private List<ProviderUserServices> providerUserServicesList1;
@OneToMany(mappedBy = "users1")
private List<UsersGlobal> usersGlobalList1;
@ManyToOne
@JoinColumn(name = "PRIMARY_PROVIDER_ID", referencedColumnName = "PROVIDER_ID")
private Providers providers;
@OneToMany(mappedBy = "users")
private List<ProviderUsers> providerUsersList;
@OneToMany(mappedBy = "users1")
private List<ProviderUsers> providerUsersList1;
@OneToMany(mappedBy = "users")
private List<ProviderUserFuncs> providerUserFuncsList;
@OneToMany(mappedBy = "users1")
private List<ProviderUserFuncs> providerUserFuncsList1;
@OneToMany(mappedBy = "users")
private List<ProviderUserRoles> providerUserRolesList;
@ManyToOne
@JoinColumn(name = "ENDED_BY", referencedColumnName = "USER_ID")
private Users users;
@OneToMany(mappedBy = "users")
private List<Users> usersList;
@OneToMany(mappedBy = "users1")
private List<ProviderUserRoles> providerUserRolesList1;
@OneToMany(mappedBy = "users2")
private List<UsersGlobal> usersGlobalList2;
@ManyToOne
@JoinColumn(name = "CREATED_BY", referencedColumnName = "USER_ID")
private Users users1;
@OneToMany(mappedBy = "users1")
private List<Users> usersList1;
@OneToMany(mappedBy = "users2")
private List<ProviderUserServices> providerUserServicesList2;
@OneToMany(mappedBy = "users2")
private List<ProviderUsers> providerUsersList2;
Code:
package org.usiis.model;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@NamedQuery(name = "ProviderUsers.findAll",
query = "select o from ProviderUsers o")
@Table(name = "PROVIDER_USERS")
public class ProviderUsers implements Serializable {
@Column(name="ACCESS_GROUP_ID")
private Long accessGroupId;
@Column(name="DATE_END")
private Timestamp dateEnd;
@Column(name="DATE_START")
private Timestamp dateStart;
private String note;
@Id
@Column(name="PROVIDER_USER_ID", nullable = false)
private Long providerUserId;
@OneToMany(mappedBy = "providerUsers")
private List<ProviderUserRoles> providerUserRolesList;
@ManyToOne
@JoinColumn(name = "PROVIDER_ID", referencedColumnName = "PROVIDER_ID")
private Providers providers;
@ManyToOne
@JoinColumn(name = "ENDED_BY", referencedColumnName = "USER_ID")
private Users users;
@ManyToOne
@JoinColumn(name = "STARTED_BY", referencedColumnName = "USER_ID")
private Users users1;
@OneToMany(mappedBy = "providerUsers")
private List<ProviderUserServices> providerUserServicesList;
@OneToMany(mappedBy = "providerUsers")
private List<ProviderUserContactInfo> providerUserContactInfoList;
@OneToMany(mappedBy = "providerUsers")
private List<ProviderUserFuncs> providerUserFuncsList;
@ManyToOne
@JoinColumn(name = "USER_ID", referencedColumnName = "USER_ID")
private Users users2;
Code:
package org.usiis.model;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
@Entity
@NamedQuery(name = "Providers.findAll", query = "select o from Providers o order by o.providerName")
public class Providers implements Serializable {
@Column(name="ACCESS_MY_DATA_FLAG")
private String accessMyDataFlag;
@Column(name="ACTIVE_FLAG")
private String activeFlag;
@Column(name="ADDRESS_CITY", nullable = false)
private String addressCity;
@Column(name="ADDRESS_STATE", nullable = false)
private String addressState;
@Column(name="ADDRESS_STREET", nullable = false)
private String addressStreet;
@Column(name="ADDRESS_ZIP", nullable = false)
private String addressZip;
@Column(name="AUTHENT_SOURCE_CODE", nullable = false)
private String authentSourceCode;
@Column(name="COUNTY_CODE", nullable = false)
private String countyCode;
@Column(name="DATE_CREATED")
private Timestamp dateCreated;
@Column(name="DATE_ENDED")
private Timestamp dateEnded;
@Column(name="DATE_ENROLLED")
private Timestamp dateEnrolled;
@Column(name="DATE_MODIFIED")
private Timestamp dateModified;
@Column(name="FAX_NUMBER")
private String faxNumber;
private String memo;
private String npi;
@Column(name="PHONE_NUMBER")
private String phoneNumber;
@Column(name="POSTCARD_FLAG")
private String postcardFlag;
@Id
@Column(name="PROVIDER_ID", nullable = false)
private String providerId;
@Column(name="PROVIDER_NAME", nullable = false)
private String providerName;
@Column(name="PROVIDER_TYPE_CODE", nullable = false)
private String providerTypeCode;
@Column(name="VFC_PIN")
private String vfcPin;
@OneToMany(mappedBy = "providers")
private List<ProviderUsers> providerUsersList;
@OneToMany(mappedBy = "providers")
private List<Users> usersList;
Anyone know why this would work in OC4J but not JBoss? basicly it is looking for providerId in providerUsers but that is a mapped relationship.
Thanks