Java JPA可以';找不到桌子
我使用的是JPA2.0、Eclipselink2.0、maven和WebLogic10.3.6。这是我的persistence.xmlJava JPA可以';找不到桌子,java,jpa,eclipselink,Java,Jpa,Eclipselink,我使用的是JPA2.0、Eclipselink2.0、maven和WebLogic10.3.6。这是我的persistence.xml org.eclipse.persistence.jpa.PersistenceProvider jdbc/com/ni/ds_edata_soa_nontx com.ni.apps.engineering.certifications.entities.NicdsCliCertificationStg com.ni.apps.engineering.certi
org.eclipse.persistence.jpa.PersistenceProvider
jdbc/com/ni/ds_edata_soa_nontx
com.ni.apps.engineering.certifications.entities.NicdsCliCertificationStg
com.ni.apps.engineering.certification.entities.NicdsCliCertificationStgPK
com.ni.apps.engineering.certification.entities.NicdsCliUpMapping
这是我的门面
package com.ni.apps.engineering.certification.controller;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUnit;
import javax.persistence.TypedQuery;
import com.ni.apps.engineering.certification.entities.NicdsCliCertificationStg;
import com.ni.apps.engineering.certification.exception.CertificationException;
import com.ni.apps.engineering.certification.utils.CertificationConstants;
public class CertificationFacade {
@PersistenceUnit(unitName = "certifications")
private EntityManagerFactory emf;
public List<NicdsCliCertificationStg> getCertificationsByUpId(String upId)
throws CertificationException {
String stringQuery = new StringBuilder(
"select c from NicdsCliCertificationStg c where c.id.contactsId = 1234").toString();
//.append(upId).toString();
try {
emf = Persistence.createEntityManagerFactory("certifications");
EntityManager em = emf.createEntityManager();
TypedQuery<NicdsCliCertificationStg> query = em
.createQuery(stringQuery, NicdsCliCertificationStg.class);
return query.getResultList();
} catch (Exception e) {
throw new CertificationException(
CertificationConstants.INTERNAL_ERROR_MESSAGE, e);
}
}
}
你知道为什么找不到桌子吗
-编辑-
添加实体
package com.ni.apps.engineering.certification.entities;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
/**
* The persistent class for the NICDS_CLI_CERTIFICATION_STG database table.
*
*/
@Entity
@Table(name="NICDS_CLI_CERTIFICATION_STG", schema="NI")
public class NicdsCliCertificationStg implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private NicdsCliCertificationStgPK id;
@Column(name="ALTERNATE_EMAIL")
private String alternateEmail;
@Temporal(TemporalType.DATE)
@Column(name="CERT_EXPIRATION_DATE")
private Date certExpirationDate;
@Temporal(TemporalType.DATE)
@Column(name="CERT_ISSUE_DATE")
private Date certIssueDate;
@Column(name="CERT_STATUS")
private String certStatus;
@Column(name="FIRST_NAME")
private String firstName;
@Column(name="LAST_NAME")
private String lastName;
@Column(name="PRIMARY_EMAIL")
private String primaryEmail;
//bi-directional one-to-one association to NicdsCliUpMapping
@OneToOne
@JoinColumn(name="CONTACTS_ID")
private NicdsCliUpMapping nicdsCliUpMapping;
public NicdsCliCertificationStg() {
}
public NicdsCliCertificationStgPK getId() {
return this.id;
}
public void setId(NicdsCliCertificationStgPK id) {
this.id = id;
}
public String getAlternateEmail() {
return this.alternateEmail;
}
public void setAlternateEmail(String alternateEmail) {
this.alternateEmail = alternateEmail;
}
public Date getCertExpirationDate() {
return this.certExpirationDate;
}
public void setCertExpirationDate(Date certExpirationDate) {
this.certExpirationDate = certExpirationDate;
}
public Date getCertIssueDate() {
return this.certIssueDate;
}
public void setCertIssueDate(Date certIssueDate) {
this.certIssueDate = certIssueDate;
}
public String getCertStatus() {
return this.certStatus;
}
public void setCertStatus(String certStatus) {
this.certStatus = certStatus;
}
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return this.lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPrimaryEmail() {
return this.primaryEmail;
}
public void setPrimaryEmail(String primaryEmail) {
this.primaryEmail = primaryEmail;
}
public NicdsCliUpMapping getNicdsCliUpMapping() {
return this.nicdsCliUpMapping;
}
public void setNicdsCliUpMapping(NicdsCliUpMapping nicdsCliUpMapping) {
this.nicdsCliUpMapping = nicdsCliUpMapping;
}
}
package com.ni.apps.engineering.certification.entities;
import java.io.Serializable;
import javax.persistence.*;
/**
* The primary key class for the NICDS_CLI_CERTIFICATION_STG database table.
*
*/
@Embeddable
public class NicdsCliCertificationStgPK implements Serializable {
//default serial version id, required for serializable classes.
private static final long serialVersionUID = 1L;
@Column(name="CONTACTS_ID")
private long contactsId;
@Column(name="CERT_NAME")
private String certName;
public NicdsCliCertificationStgPK() {
}
public long getContactsId() {
return this.contactsId;
}
public void setContactsId(long contactsId) {
this.contactsId = contactsId;
}
public String getCertName() {
return this.certName;
}
public void setCertName(String certName) {
this.certName = certName;
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof NicdsCliCertificationStgPK)) {
return false;
}
NicdsCliCertificationStgPK castOther = (NicdsCliCertificationStgPK)other;
return
(this.contactsId == castOther.contactsId)
&& this.certName.equals(castOther.certName);
}
public int hashCode() {
final int prime = 31;
int hash = 17;
hash = hash * prime + ((int) (this.contactsId ^ (this.contactsId >>> 32)));
hash = hash * prime + this.certName.hashCode();
return hash;
}
}
package com.ni.apps.engineering.certification.entities;
import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
/**
* The persistent class for the NICDS_CLI_UP_MAPPING database table.
*
*/
@Entity
@Table(name="NICDS_CLI_UP_MAPPING", schema="NI")
public class NicdsCliUpMapping implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="NICDS_CLI_UP_MAPPING_CONTACTSID_GENERATOR" )
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="NICDS_CLI_UP_MAPPING_CONTACTSID_GENERATOR")
@Column(name="CONTACTS_ID")
private long contactsId;
@Column(name="PROFILE_ID")
private BigDecimal profileId;
//bi-directional one-to-one association to NicdsCliCertificationStg
@OneToOne(mappedBy="nicdsCliUpMapping")
private NicdsCliCertificationStg nicdsCliCertificationStg;
public NicdsCliUpMapping() {
}
public long getContactsId() {
return this.contactsId;
}
public void setContactsId(long contactsId) {
this.contactsId = contactsId;
}
public BigDecimal getProfileId() {
return this.profileId;
}
public void setProfileId(BigDecimal profileId) {
this.profileId = profileId;
}
public NicdsCliCertificationStg getNicdsCliCertificationStg() {
return this.nicdsCliCertificationStg;
}
public void setNicdsCliCertificationStg(NicdsCliCertificationStg nicdsCliCertificationStg) {
this.nicdsCliCertificationStg = nicdsCliCertificationStg;
}
}
错误在于weblogic的数据源的用户和密码组合与应用程序模式所需的不同。如果我找到一种方法来强制JPA使用特定的模式/用户/密码组合,而不更改数据源中的用户,我将更新此答案。如果您使用不同的用户进行测试,则在数据源中配置的用户 在数据源连接池配置中,转到高级部分 在“Init SQL”部分中键入(请参阅指令前面的SQL单词,必要时) SQL ALTER SESSION SET CURRENT_SCHEMA=DEVLPMT
请参见您是否使用
psql
尝试了该查询?(或任何支持Oracle的SQL客户端)。这可能是各种各样的错误,例如无效的数据库、模式、用户,甚至更糟的是:表是以某种大小写声明的,Oracle预期会出现这种情况。是的,我运行了查询,只是我将?这显示在5678参数的错误中,它工作正常。如何定义实体?是否覆盖默认表名?该实体由eclipse自动生成。我将在这里发布代码。表不存在错误意味着您登录数据库的用户无法看到该表。检查您如何创建ds_edata_soa_nontx数据源,以及它是否使用与您在psql中使用的相同凭据来验证表是否存在
package com.ni.apps.engineering.certification.entities;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
/**
* The persistent class for the NICDS_CLI_CERTIFICATION_STG database table.
*
*/
@Entity
@Table(name="NICDS_CLI_CERTIFICATION_STG", schema="NI")
public class NicdsCliCertificationStg implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private NicdsCliCertificationStgPK id;
@Column(name="ALTERNATE_EMAIL")
private String alternateEmail;
@Temporal(TemporalType.DATE)
@Column(name="CERT_EXPIRATION_DATE")
private Date certExpirationDate;
@Temporal(TemporalType.DATE)
@Column(name="CERT_ISSUE_DATE")
private Date certIssueDate;
@Column(name="CERT_STATUS")
private String certStatus;
@Column(name="FIRST_NAME")
private String firstName;
@Column(name="LAST_NAME")
private String lastName;
@Column(name="PRIMARY_EMAIL")
private String primaryEmail;
//bi-directional one-to-one association to NicdsCliUpMapping
@OneToOne
@JoinColumn(name="CONTACTS_ID")
private NicdsCliUpMapping nicdsCliUpMapping;
public NicdsCliCertificationStg() {
}
public NicdsCliCertificationStgPK getId() {
return this.id;
}
public void setId(NicdsCliCertificationStgPK id) {
this.id = id;
}
public String getAlternateEmail() {
return this.alternateEmail;
}
public void setAlternateEmail(String alternateEmail) {
this.alternateEmail = alternateEmail;
}
public Date getCertExpirationDate() {
return this.certExpirationDate;
}
public void setCertExpirationDate(Date certExpirationDate) {
this.certExpirationDate = certExpirationDate;
}
public Date getCertIssueDate() {
return this.certIssueDate;
}
public void setCertIssueDate(Date certIssueDate) {
this.certIssueDate = certIssueDate;
}
public String getCertStatus() {
return this.certStatus;
}
public void setCertStatus(String certStatus) {
this.certStatus = certStatus;
}
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return this.lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPrimaryEmail() {
return this.primaryEmail;
}
public void setPrimaryEmail(String primaryEmail) {
this.primaryEmail = primaryEmail;
}
public NicdsCliUpMapping getNicdsCliUpMapping() {
return this.nicdsCliUpMapping;
}
public void setNicdsCliUpMapping(NicdsCliUpMapping nicdsCliUpMapping) {
this.nicdsCliUpMapping = nicdsCliUpMapping;
}
}
package com.ni.apps.engineering.certification.entities;
import java.io.Serializable;
import javax.persistence.*;
/**
* The primary key class for the NICDS_CLI_CERTIFICATION_STG database table.
*
*/
@Embeddable
public class NicdsCliCertificationStgPK implements Serializable {
//default serial version id, required for serializable classes.
private static final long serialVersionUID = 1L;
@Column(name="CONTACTS_ID")
private long contactsId;
@Column(name="CERT_NAME")
private String certName;
public NicdsCliCertificationStgPK() {
}
public long getContactsId() {
return this.contactsId;
}
public void setContactsId(long contactsId) {
this.contactsId = contactsId;
}
public String getCertName() {
return this.certName;
}
public void setCertName(String certName) {
this.certName = certName;
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof NicdsCliCertificationStgPK)) {
return false;
}
NicdsCliCertificationStgPK castOther = (NicdsCliCertificationStgPK)other;
return
(this.contactsId == castOther.contactsId)
&& this.certName.equals(castOther.certName);
}
public int hashCode() {
final int prime = 31;
int hash = 17;
hash = hash * prime + ((int) (this.contactsId ^ (this.contactsId >>> 32)));
hash = hash * prime + this.certName.hashCode();
return hash;
}
}
package com.ni.apps.engineering.certification.entities;
import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
/**
* The persistent class for the NICDS_CLI_UP_MAPPING database table.
*
*/
@Entity
@Table(name="NICDS_CLI_UP_MAPPING", schema="NI")
public class NicdsCliUpMapping implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="NICDS_CLI_UP_MAPPING_CONTACTSID_GENERATOR" )
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="NICDS_CLI_UP_MAPPING_CONTACTSID_GENERATOR")
@Column(name="CONTACTS_ID")
private long contactsId;
@Column(name="PROFILE_ID")
private BigDecimal profileId;
//bi-directional one-to-one association to NicdsCliCertificationStg
@OneToOne(mappedBy="nicdsCliUpMapping")
private NicdsCliCertificationStg nicdsCliCertificationStg;
public NicdsCliUpMapping() {
}
public long getContactsId() {
return this.contactsId;
}
public void setContactsId(long contactsId) {
this.contactsId = contactsId;
}
public BigDecimal getProfileId() {
return this.profileId;
}
public void setProfileId(BigDecimal profileId) {
this.profileId = profileId;
}
public NicdsCliCertificationStg getNicdsCliCertificationStg() {
return this.nicdsCliCertificationStg;
}
public void setNicdsCliCertificationStg(NicdsCliCertificationStg nicdsCliCertificationStg) {
this.nicdsCliCertificationStg = nicdsCliCertificationStg;
}
}