Java 从eclipse将hyperjaxb生成的实体持久化到mysql
我正在使用设置Java 从eclipse将hyperjaxb生成的实体持久化到mysql,java,eclipse,jaxb,hbm2ddl,hyperjaxb,Java,Eclipse,Jaxb,Hbm2ddl,Hyperjaxb,我正在使用设置hyperjaxb在eclipse中运行。到目前为止,我已经让它进行了marshal和unmarshal,但它还没有触发hbm2ddl在数据库中创建表,在eclipse目录结构中,我不清楚应该在哪里找到Main.java和TestFunctions.java类,我创建这些类是为了运行上面教程链接中的代码如何更改eclipse配置以实现这些功能? 以下是我的main.java: package maintest; public class Main { public sta
hyperjaxb
在eclipse中运行。到目前为止,我已经让它进行了marshal
和unmarshal
,但它还没有触发hbm2ddl
在数据库中创建表,在eclipse目录结构中,我不清楚应该在哪里找到Main.java
和TestFunctions.java
类,我创建这些类是为了运行上面教程链接中的代码如何更改eclipse配置以实现这些功能?
以下是我的main.java:
package maintest;
public class Main {
public static void main(String[] args) {
TestFunctions mf = new TestFunctions();
try {mf.setUp();} catch (Exception e) {e.printStackTrace();}
mf.unmarshal();
mf.setUpPersistence();
Long id = mf.saveToDatabase();
System.out.println("hjid is: "+id);
mf.loadFromDatabase(id);
mf.marshal();
}
}
您可以通过阅读TestFunctions.java
。请注意,文件共享站点错误地将代码对齐,尽管代码在我的计算机上是左对齐的
persistence.properties
是:
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.username=someusername
hibernate.connection.password=somepassword
hibernate.connection.url=jdbc:mysql://localhost/sometestdatabase
hibernate.hbm2ddl.auto=create-drop
hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
hibernate.jdbc.batch_size=0
当我右键单击Main.java
并单击运行方式时,我当前得到了以下堆栈跟踪。。java应用程序
:
Exception in thread "main" java.lang.NoClassDefFoundError: maintest/TestFunctions
at maintest.Main.main(Main.java:7)
Caused by: java.lang.ClassNotFoundException: maintest.TestFunctions
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more
以下是目录结构:
对于您眼前的问题:如果
Main.java
驻留在src/Main/java
中,并且需要调用TestFunctions.java
,那么正常的Maven开发将TestFunctions.java
放在src/Main/java
中,而不是src/test/java
。(根据src/test
中的任何内容,将您的“真实”代码放在src/main
中通常是个坏主意)。谢谢+谢谢你的帮助。我已经试过你的建议了。但它只是推送错误信息。你愿意看看我的另一个问题吗?这个问题显示了按照你的建议去做的结果?这里是链接:我想你在另一个问题中基本上遇到了相同的问题-你在src/main中有东西(在这种情况下,TestFunctions.java)试图访问src/test中的东西(在这种情况下,persistence.properties),这是行不通的;main、TestFunctions和persistence.properties都需要在src/main中,或者它们都需要在src/test中。我将对此添加一个答案。这个问题询问如何触发hbm2ddl在MySQL数据库中创建表。它仍然没有这样做。但是,你对另一个问题的回答确实解决了另一个问题,因此我将你的另一个回答标记为已接受。这个问题还没有解决。很高兴我能让你通过第一步。如果您用您看到的新行为更新此问题,我可以尝试在这里提供进一步的帮助。谢谢。我看到的新信息是另一个问题,因为在我看到它的hbm2ddl级别之前,新信息是一个增量步骤。以下是当前信息的链接: