Tag: oracle

在命名空间(,)中找到多个表 – SchemaExtractionException

尝试在Java应用程序中使用Hibernate将一些值保存到表中时,我一直面临着这个奇怪的exception。 但是,只有一个特定的表/实体才会出现此exception,因为其余的表我可以通过Hibernate执行crud操作。 请在下面找到Stacktrace并告诉我这是否与java代码相关或者是数据库设计错误。 2016-04-28 11:52:34 ERROR XXXXXDao:44 – Failed to create sessionFactory object.org.hibernate.tool.schema.extract.spi.SchemaExtractionException: More than one table found in namespace (, ) : YYYYYYY Exception in thread “main” java.lang.ExceptionInInitializerError at com.XX.dao.XXXXXXXDao.main(XXXXXXXXDao.java:45) Caused by: org.hibernate.tool.schema.extract.spi.SchemaExtractionException: More than one table found in namespace (, ) : YYYYYYY at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.processGetTableResults(InformationExtractorJdbcDatabaseMetaDataImpl.java:381) at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getTable(InformationExtractorJdbcDatabaseMetaDataImpl.java:279) at org.hibernate.tool.schema.internal.exec.ImprovedDatabaseInformationImpl.getTableInformation(ImprovedDatabaseInformationImpl.java:109) at org.hibernate.tool.schema.internal.SchemaMigratorImpl.performMigration(SchemaMigratorImpl.java:252) at org.hibernate.tool.schema.internal.SchemaMigratorImpl.doMigration(SchemaMigratorImpl.java:137) […]

Oracle序列事务性

我需要一个特定的业务场景,在一个实体(而不是PK)上设置一个序列中的数字(序列必须是最小值和最大值之间的数字) 我定义了这样的序列: CREATE SEQUENCE MySequence MINVALUE 65536 MAXVALUE 4294967296 START WITH 65536 INCREMENT BY 1 CYCLE NOCACHE ORDER; 在Java代码中,我从序列中检索数字,如下所示: select mySequence.nextval from dual 我的问题是: 如果我在一个事务中称之为“ select mySequence.nextval from dual ”并且在另一个事务中同时调用相同的方法(并行请求),那么它确定序列返回的值是否不同? 是不是可以从第一个事务中读取未提交的值? 因为让我说我不会使用序列和一个普通表,我会增加自己的序列,然后如果trasactinalitY是默认的“READ COMMITTED”,事务2将能够读取相同的值。

查询挂起oracle 10g

我的软件有这个奇怪的问题。 是生产了5年,我们没有这样的问题…… 问题: 我们有一个spring job(scheduler),它通过hibernate进行查询,检索对象并修改它们。 好吧,这工作了几年,但一个月前查询每天挂起5-10次(每10分钟调用一次查询)。 当它挂起时,我们必须重新启动服务。 以下代码执行查询: @SuppressWarnings(“unchecked”) public List findScheduledForDelivery(final String inType, final int max, final String benefitType ) { //getHibernateTemplate().clear(); return getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws SQLException { Criteria criteria = session.createCriteria(Delivery.class); criteria.createAlias(“reward”,”r”); criteria.createAlias(“r.customer”,”c”); criteria.createAlias(“c.inNe”,”i”); criteria.createAlias(“r.promotion”,”p”); criteria.createAlias(“benefit”,”b”); String sqlCustAlias = StringHelper.generateAlias(“c”, 2); criteria.add(Expression.disjunction() .add(Expression.eq(“inStatus”, INStatus.InterfaceFailure)) .add(Expression.eq(“inStatus”,INStatus.Initial))); criteria.add(Expression.le(“deliverAt”, new Date())); […]

如何检查Oracle中的JDK版本?

我们的Oracle数据库中有一个Java类,最近该java类中的一行代码引发了错误: static BASE64Encoder B64 = new BASE64Encoder(); 我们看到了错误 java.lang.ExceptionInInitializerError 在这行代码上。 我不确定数据库端有什么变化,因为我们没有SYS权限或访问主机。 我希望检查运行Oracle DB的JDK版本 – Oracle Database 11g企业版11.2.0.3.0版 – 64位生产。 谢谢。

Spring Boot Actuator / health endpoint不显示数据库或文件系统信息

我无法获取要显示在/ health端点上的数据库信息或文件系统信息。 我只能得到: { “status”: “UP” } 有关我的设置和配置的详细信息: – Spring Boot 1.3.3 – 在JBoss EAP 6.4上运行WAR – Datasource是一个JNDI资源。 – Oracle是数据库 spring: datasource: # Must match the datasource name in JBoss standalone.xml jndi-name: java:jboss/beautiful-ds driver-class-name: oracle.jdbc.driver.OracleDriver jpa: properties: # escapes reserved words used as column names (if any) globally_quoted_identifiers: true show-sql: true hibernate: naming_strategy: org.hibernate.cfg.EJB3NamingStrategy server: […]

从JPA级别选择更新跳过锁定

在我的应用程序 – 带JPA的Oracle(EclipseLink)中,我使用以下表达式来锁定某些表中的记录子集: select * from MY_TABLE where MY_CONDITIONS for update skip locked 我在本机查询中运行它,但我必须为所有必需的实体编写该查询。 有没有办法使用纯JPA跳过锁定的记录? 我可以实施自己的锁定政策吗? 我不介意更改JPA提供程序,但我想使用JPA API。

Java Date Hibernate切断时间

我在Oracle DB中有一个Date类型列,它包含日期和时间。 但是当我试图在java应用程序中获取数据时,它将返回带有一堆零而不是实时的日期。 在代码中,它将像: SQLQuery sqlQuery = session.createSQLQuery(“SELECT table.id, table.date FROM table”); List resultArray = sqlQuery.list(); Date date = (Date)resultArray[1]; 如果它是26-feb-2010 17:59:16在DB中我会得到26-feb-2010 00:00:00如何随着时间的推移得到它?

Oracle瘦驱动程序与OCI驱动程序。 优点和缺点?

当您开发一个与oracle DB对话的Java应用程序时,有两个选项吗? 一个是oracle瘦驱动程序,另一个是需要自己安装的OCI驱动程序(如果我误解,请更正)。 现在,有什么利弊? 很明显,薄型驱动器在安装方面听起来要好得多,但是OCI可以做什么,薄的却不行? 开发环境是Tomcat6 + Spring 3.0 + JPA(Hibernate)+ apache-DBCP

Oracle将空字符串视为Java / JPA程序员的NULL问题

如何处理Oracle在数据库中将空字符串存储为null的情况? 我希望它存储为空字符串,因为它不是NULL,因为发出查询会更容易。 像这样的东西会选择空字符串和非空字符串,但不会选择空值 select * from mytable where myfield like ‘%’; 如果我还要选择空值(原本应该是空字符串),我必须选择如下: select * from mytable where myfield like ‘%’ or myfield is null; 我希望在我的sql语句中or myfield is null跳过做or myfield is null 我想到的当前解决方案是在应用程序级别中处理这个问题,例如,在实体中,我将我的所有String字段默认值初始化为空格,例如: @Entity public class MyEntity { private String name = ” “; public void setName(String name) { if (isEmptyString(name)) { name = ” “; […]

java.sql.SQLException:侦听器拒绝连接时出现以下错误:ORA-12519,TNS:找不到合适的服务处理程序

我将Resultset对象传递给每个线程。 每个线程都连接到数据库并插入数据。 直到线程110它工作正常。 在它穿过111线程后,它抛出上述exception。 我正在使用oracle 11g。 我的示例线程代码是: class MyThreadClass implements Runnable { public Connection connection; public Statement statement2; public ResultSet rs2; public String cookie; public MyThreadClass(ResultSet rs1) { rs2=rs1; } public void run() { try { cookie=rs2.getString(“COOKIE”); driver = “oracle.jdbc.driver.OracleDriver”; url = “jdbc:oracle:thin:@127.0.0.1:1521:xx”; /* connection statement2.executeUpdate(“INSERT INTO visit_header VALUES (‘”+cookie+”‘)”); } 我没有得到如何处理此exception。