Java 错误9952---[nio-8081-exec-1]o.h.engine.jdbc.spi.SqlExceptionHelper:ORA-00923:未在预期位置找到FROM关键字
我正在尝试从spring boot应用程序中的数据库中获取数据。我正在使用hibernate库。下面是我的实体类:Java 错误9952---[nio-8081-exec-1]o.h.engine.jdbc.spi.SqlExceptionHelper:ORA-00923:未在预期位置找到FROM关键字,java,oracle,hibernate,spring-boot,jpa,Java,Oracle,Hibernate,Spring Boot,Jpa,我正在尝试从spring boot应用程序中的数据库中获取数据。我正在使用hibernate库。下面是我的实体类: @SuppressWarnings("serial") @Entity @Table(name = "MU_GM_CIRCULARS") public class GmCirculars extends ParentEntity implements Serializable { private BigDecimal id; private Date create
@SuppressWarnings("serial")
@Entity
@Table(name = "MU_GM_CIRCULARS")
public class GmCirculars extends ParentEntity implements Serializable {
private BigDecimal id;
private Date createdOn;
private String title;
private BigDecimal serialNo;
private BigDecimal year;
private BigDecimal active;
private BigDecimal organizationId;
private BigDecimal showOnDashboard;
public GmCirculars() {
super();
}
public GmCirculars(BigDecimal id) {
super();
this.id = id;
}
public GmCirculars(BigDecimal id, BigDecimal createdById, Date createdOn, String title, BigDecimal serialNo,
BigDecimal year ,BigDecimal documentId, BigDecimal typeId) {
super();
this.id = id;
this.createdOn = createdOn;
this.title = title;
this.serialNo = serialNo;
this.year = year;
}
@Id
@Column(name = "ID")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="MU_GM_CIRCULARS_SEQ")
@SequenceGenerator(name="MU_GM_CIRCULARS_SEQ",sequenceName="MU_GM_CIRCULARS_SEQ",allocationSize=1)
public BigDecimal getId() {
return id;
}
public void setId(BigDecimal id) {
this.id = id;
}
@Column(name="created_on")
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
@Column(name="title")
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Column(name="serial_no")
public BigDecimal getSerialNo() {
return serialNo;
}
public void setSerialNo(BigDecimal serialNo) {
this.serialNo = serialNo;
}
@Column(name="year")
public BigDecimal getYear() {
return year;
}
public void setYear(BigDecimal year) {
this.year = year;
}
@Column(name = "org_id")
public BigDecimal getOrganizationId() {
return organizationId;
}
public void setOrganizationId(BigDecimal organizationId) {
this.organizationId = organizationId;
}
@Column(name="show_on_dashboard")
public BigDecimal getShowOnDashboard() {
return showOnDashboard;
}
public void setShowOnDashboard(BigDecimal showOnDashboard) {
this.showOnDashboard = showOnDashboard;
}
@Column(name = "active")
public BigDecimal isActive() {
return active;
}
public void setActive(BigDecimal active) {
this.active = active;
}
}
discounts = criteria.list();
下面是具有获取数据的方法的类:
@Repository
@Transactional
@SuppressWarnings("unchecked")
public class GmCircularsDaoImpl extends ParentDAO implements IGmCircularsDAO {
@Override
public List<GmCirculars> find(GmCirculars obj, boolean activeOnly, int startOffset, int maxRows) {
Session session = null;
List<GmCirculars> discounts = null;
try {
if (null != obj) {
session= this.getSession();
Criteria criteria = session.createCriteria(GmCirculars.class);
if (null != obj.getId() && !BigDecimal.ZERO.equals(obj.getId())) {
criteria.add(Restrictions.eq("id", obj.getId()));
}
if (StringUtil.isNotNullOrEmpty(obj.getTitle())) {
criteria.add(Restrictions.ilike("title", obj.getTitle(), MatchMode.ANYWHERE));
}
if(null != obj.getOrganizationId()) {
criteria.add(Restrictions.eq("organizationId", obj.getOrganizationId()));
}
if (null != obj.getSerialNo() && !BigDecimal.ZERO.equals(obj.getSerialNo())) {
criteria.add(Restrictions.eq("serialNo", obj.getSerialNo()));
}
if (null != obj.getYear() && !BigDecimal.ZERO.equals(obj.getYear())) {
criteria.add(Restrictions.eq("year", obj.getYear()));
}
if (activeOnly) {
criteria.add(Restrictions.eq("active", BigDecimal.ONE));
} else {
criteria.add(Restrictions.or(Restrictions.ne("active", CommonConstants.DELETED_STATUS), Restrictions.isNull("active"))); //Except for deleted ones -> NVL(active,2)
}
criteria.setFirstResult(startOffset);
criteria.setMaxResults(maxRows);
criteria.addOrder(Order.desc("id"));
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
System.out.println("criteria: "+ criteria.toString());
discounts = criteria.list();
System.out.println("returned list from db:"+discounts);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
return discounts;
}
discounts = criteria.list();
在方法find(GmCirculars obj,boolean activeOnly,int startOffset,int maxRows)中
discounts = criteria.list();
当我运行代码时,我得到以下错误
discounts = criteria.list();
java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在
discounts = criteria.list();
在oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:447)~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.t4cttiore.processError(t4cttiore.java:396)~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:195)~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
位于oracle.jdbc.driver.T4CStatement.executeforderdescripe(T4CStatement.java:876)
~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
在oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1498)中
~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
位于oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:406)
~[ojdbc6-11.1.0.6.0.jar:11.2.0.4.0]
位于org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
~[commons-dbcp-1.4.jar:1.4]
位于org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:42)
~[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentimpl.sequenceInformationList(jdbconvironmentimpl.java:403)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentimpl.(jdbconvironmentimpl.java:268)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.initiateService(jdbconvironmentinitiator.java:114)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.initiateService(jdbconvironmentinitiator.java:35)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.boot.internal.InFlightMetadataCollectorImpl。(InFlightMetadataCollectorImpl.java:175)
[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
discounts = criteria.list();
2020-02-03 09:16:11.269信息9952---[restartedMain]o.h.e.t.j.p.i.JtaPlatformInitiator:HH000490:使用JtaPlatform实现:[org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2020-02-03 09:16:11.281信息9952---[restartedMain]j.LocalContainerEntityManagerFactoryBean:已初始化持久化单元“默认”的JPA EntityManagerFactory
2020-02-03 09:16:11.299信息9952---[restartedMain]o.s.b.d.a.可选LiveReload服务器:LiveReload服务器正在端口35729上运行
2020-02-03 09:16:11.367警告9952---[restartedMain]c.n.c.sources.URLConfigurationSource:没有URL将作为动态配置源进行轮询。
2020-02-03 09:16:11.368 INFO 9952---[restartedMain]c.n.c.sources.URLConfigurationSource:要启用URL作为动态配置源,请定义系统属性archaius.configurationSource.additionalUrls或使config.properties在类路径上可用。
2020-02-03 09:16:11.470警告9952---[restartedMain]默认情况下启用JpaBaseConfiguration$JpaWebConfiguration:spring.jpa.open-in-view。因此,可以在视图渲染期间执行数据库查询。显式配置spring.jpa.open-in-view以禁用此警告
2020-02-03 09:16:11.646信息9952---[restartedMain]o.s.s.concurrent.ThreadPoolTaskExecutor:正在初始化ExecutorService'applicationTaskExecutor'
2020-02-03 09:16:12.754警告9952---[restartedMain]锁定负载平衡器Clientribbon警告记录器:您已经有Ribb了