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级别之前,新信息是一个增量步骤。以下是当前信息的链接: