我正在开发一个 Rest API,用于从数据库中获取所有主题。我将 Spring Boot 与 Derby 结合使用,并使用 JPA 与 derby 进行交互。当 Spring Boot 应用程序启动时,JPA 无法在 derby 上创建表并抛出错误。
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table topic (id bigint not null, desc varchar(255), name varchar(255), primary key (id))" via JDBC Statement
at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:315) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:155) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:310) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:467) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:939) [hibernate-core-5.3.9.Final.jar:5.3.9.Final]
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57) [spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) …Run Code Online (Sandbox Code Playgroud) 当我尝试使用 hibernate 将我的 java 应用程序连接到 Apache Derby 时出现此错误。
Caused by: java.lang.UnsupportedClassVersionError: org/apache/derby/jdbc/EmbeddedDriver has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
我到处都读到这可能是因为缺少 jars,但我什至在 lib 文件夹中添加了以下 jars:
derby-10.15.2.0.jar
derbyclient-10.15.2.0.jar
derbynet-10.15.2.0.jar
derbyshared-10.15.2.0.jar
derbytools-10.15.2.0.jar
Run Code Online (Sandbox Code Playgroud)
下面是我的数据源连接变量:
database.url=jdbc:derby://opt/derby/sampleDerbyDB;create=true
database.driver=org.apache.derby.jdbc.ClientDriver (Also tried using EmbeddedDriver but same error)
hibernate.dialect=org.hibernate.dialect.DerbyDialect
Run Code Online (Sandbox Code Playgroud)
你能告诉我我做错了什么吗?我想继续使用相同的 jre/java 版本并且不想升级。
我有 3 个 sql 表客户、员工和经理。我想动态访问我的表。我有这样的声明,
"update customer set AMOUNT where ID= ?"
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,我只能访问客户。我需要访问所有表以进行不同的操作。可以这样写吗
"update ? set AMOUNT where ID=?"
Run Code Online (Sandbox Code Playgroud)
或者我可以做什么来访问例如不同班级的员工。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.javacourse.project.hibernateAndJPA.Entities.City
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-5.3.3.jar:5.3.3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:609) ~[spring-beans-5.3.3.jar:5.3.3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531) ~[spring-beans-5.3.3.jar:5.3.3]
Run Code Online (Sandbox Code Playgroud)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.javacourse.project.hibernateAndJPA.Entities.City
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-5.3.3.jar:5.3.3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:609) ~[spring-beans-5.3.3.jar:5.3.3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531) ~[spring-beans-5.3.3.jar:5.3.3]
Run Code Online (Sandbox Code Playgroud)
应用特性:
spring.datasource.url=jdbc:derby://localhost:1527/sample
spring.datasource.username=user
spring.datasource.password=1234
spring.datasource.initialize=false
spring.datasource.driver-class-name=org.apache.derby.jdbc.ClientDriver …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的DAO对象创建一个JUnit测试.JUnit直接从Netbeans运行.我对其中的几种技术都很陌生,因此我有一段时间可以追踪我的错误来自何处.我的代码和我看到的相应错误是:
2011年7月22日下午7:09:09 com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl findDerbyClient INFO:找不到javadb客户端jar文件,默认情况下derby jdbc驱动程序不可用.FATAL [DatasourceConnectionProvider] - 无法找到数据源:Waylon org.omg.CORBA.COMM_FAILURE:FINE:IOP00410001:连接失败:socketType:IIOP_CLEAR_TEXT; hostname:localhost; port:3700 vmcid:OMG次代码:1完成:没有javax.naming.NamingException:在SerialContext中查找'Waylon'失败[myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory ,java.naming.factory.url.pkgs = com.sun.enterprise.naming,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [root异常是javax.naming .NamingException:无法为SerialContext获取SerialContextProvider [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.url.pkgs = com.sun.enterprise.naming ,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [根异常是org.omg.CORBA.COMM_FAILURE:FINE:IOP00410001:连接失败:socketType:IIOP_CLEAR_TEXT; hostname:localhost; 端口:3700 vmcid:OMG次要代码:1完成:否]]在sun.sref.enterEv. .reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)在com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)在java.lang.reflect.Constructor.newInstance(Constructor.java:513 )在com.sun.corba的com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:248)的javax.naming.InitialContext.lookup(InitialContext.java:392)中. ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:95)位于com.sun.corba.ee.spi.orbutil的org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52). org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(Connec)中的logex.WrapperGenerator.handleFullLogging(WrapperGenerator.java:387)tionProviderFactory.java:124)在com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access $ 400(WrapperGenerator.java:107)在org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)在com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator $ 2.invoke(WrapperGenerator.java:511)位于com.sun.corba.ee的org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)位于org.hibernate.cfg的$ Proxy40.connectFailure(未知来源)的org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)中的.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke(CompositeInvocationHandlerImpl.java:99).位于org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)的com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:257)中的Configuration.buildSessionFactory(Configuration.java:1292)at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnec tionImpl.java:270)at com.unernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)at com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:129)at com.sun位于com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl的org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)上的.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:223) .request(CorbaClientDelegateImpl.java:228)位于org.omg.CORBA的com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:393)的javax.persistence.Persistence.createEntityManagerFactory(未知来源) .portable.ObjectImpl._is_a(ObjectImpl.java:112)位于com.google.inject.persist的org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69)的javax.persistence.Persistence.createEntityManagerFactory(未知来源) .jpa.JpaPersistService.在com.sun.enterprise.naming.impl.SerialContext $ ProviderCacheKey.getNameService(SerialContext.java:1241)的com.sun.label.LabelDAOIJTest.setUpClass(LabelDAOIJTest.java:36)的com.sun开始(JpaPersistService.java:94) .enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:411)在com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:347)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:455)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)在javax.naming.InitialContext.lookup(InitialContext.java:392)在java.lang.reflect.Method.invoke(方法. java:597)org.juni上的org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)位于org.junit.internal.runners.model.ReflectiveCallable.run的org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)中的t.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:44)(ReflectiveCallable)的.java:15)在在org.junit.runners.model.FrameworkMethod org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)在org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62).在org.hibernate的org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)的org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)中调用了爆炸性的(FrameworkMethod.java:41) .cfg.Configuration.buildSessionFactory(Configuration.java:1292)在org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)在org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859 )org.junit.runners.ParentRunner.run(父 Runner.java:303)org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)位于org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence)的junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39) .java:126)org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)at org.apache.tools.ant的javax.persistence.Persistence.createEntityManagerFactory(未知来源) .taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)位于org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)的javax.persistence.Persistence.createEntityManagerFactory (未知来源)at com.google.inject.persist.jpa.JpaPersistService.start(JpaPersistService.java:94)at waylon.label.LabelDAOIJTest.setUpClass(LabelDAOIJTest.java:36)引起:javax.naming.NamingException:Unable获取SerialContext的SerialContextProvider [myEnv = {java.naming.factory.initial = …
请查看以下代码
package normal;
//This class if s for checking the database. If the database doesn't exists, this class will create one
import java.sql.*;
public class DatabaseCheck
{
private Connection con;
public DatabaseCheck()
{
createConnection();
try
{
Statement st = con.createStatement();
st.executeQuery("select * from PhoneData");
}
catch(Exception e)
{
System.out.println(e.getLocalizedMessage());
if(e.getLocalizedMessage().equals("Schema 'SA' does not exist"))
{
try
{
PreparedStatement ps = con.prepareStatement("create table PhoneData(ids int identity constraint pkId primary key,names varchar(20),mobileNumber1 varchar(20),mobileNumber2 varchar(20),landNumber1 varchar(20),landNumber2 varchar(20),address varchar(100),category varchar(20),nickName varchar(20),email varchar(20),middleName varchar(20),lastName varchar(20),city …Run Code Online (Sandbox Code Playgroud) Our Utilty has one single table, and it has 10 million to 50 million rows, There may be a case we need to show 50 million rows in a single page html client page, To show the rows in browser we use jQuery in UI.
To retrieve rows we use Hibernate and use Spring for MVC. I am looking for best practice in retrieving the rows and showing in UI. Should I retrieve a bulk of thousands rows or two …
我正在尝试添加WebLogic中包含的Derby作为数据源.我正在运行WebLogic 10.3.5.我没有在setDomainEnv.cmd中看到Derby标志,所以我将客户端驱动程序添加到CLASSPATH:
set CLASSPATH=%PRE_CLASSPATH%;%WEBLOGIC_CLASSPATH%;%POST_CLASSPATH%;%WLP_POST_CLASSPATH%;%WL_HOME%\common\derby\lib\derbyclient.jar
Run Code Online (Sandbox Code Playgroud)
在setDomainEnv.cmd中.现在,当我尝试在WebLogic中激活我的数据源时,我得到:
An error occurred during activation of changes, please see the log for
details. Message icon - Error weblogic.application.ModuleException:
Message icon - Error java.net.ConnectException : Error connecting to
server localhost on port 1527 with message Connection refused:
connect.
Run Code Online (Sandbox Code Playgroud)
我还需要做些什么才能让它发挥作用?
我试图在我的数据库中插入一条记录,该记录由Hibernate(Apache Derby)处理.我有一个使用hbm.xml映射的User对象类,并且数据库连接正常,但是返回以下错误:
ERROR: Syntax error: Encountered "USER" at line 1, column 13. Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not prepare statement
Run Code Online (Sandbox Code Playgroud)
我在日志中收到以下内容:
Dec 07, 2013 4:56:12 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
Dec 07, 2013 4:56:12 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.8.Final}
Dec 07, 2013 4:56:12 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Dec 07, 2013 4:56:12 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Dec 07, 2013 4:56:13 PM …Run Code Online (Sandbox Code Playgroud) 我正在尝试user在gomobileDerbyDB 的模式中查询我的表的所有数据.
我已成功建立与数据库的连接并创建了一个JPA实体,其所有列都对应于数据库表.
@Entity
@Table(name = "user", schema = "gomobile")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
// all columns
public static List<User> getAll() {
String queryString = "SELECT u FROM gomobile.user u";
EntityManager em = Persistence.createEntityManagerFactory("Eclipselink").createEntityManager();
return em.createQuery(queryString, User.class).getResultList();
}
}
Run Code Online (Sandbox Code Playgroud)
这是stracktrace:
Exception in thread "main" java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Problem compiling [SELECT u FROM gomobile.user as u].
[14, 41] 'gomobile.user …Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习SQL,并且正在尝试创建一个表,并在CSV-file 上填充一些数据.
以下是尝试执行此操作的应用程序:
public sqlThingy() throws Exception {
File spritesheetsCreate = new File("sql/spritesheetsCreate.sql");
File spritesheetsData = new File("sql/spritesheetsData.sql");
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
Connection conn = DriverManager
.getConnection("jdbc:derby:TESTNAME;create=true");
//CREATE TABLE
try (PreparedStatement statement = conn
.prepareStatement(readFile(spritesheetsCreate))) {
statement.execute();
}
//FILL TABLE WITH DATA
try (PreparedStatement ps = conn.prepareStatement(readFile(spritesheetsData))) {
try (CSVReader rdr = new CSVReader(new FileReader(new File(
"res/spritesheets.csv")), ',', '"', 1)) {
for (String[] row : rdr.readAll()) {
ps.setString(1, row[0]);
ps.setString(2, row[1]);
ps.setInt(3, Integer.valueOf(row[2]));
ps.execute();
}
}
}
}
private …Run Code Online (Sandbox Code Playgroud) derby ×11
java ×7
hibernate ×4
sql ×4
jdbc ×3
database ×2
jpa ×2
spring-boot ×2
csv ×1
eclipselink ×1
guice ×1
maven ×1
unit-testing ×1
web ×1
weblogic ×1