2017-05-31 24 views
0

我在使用persistent.xml创建数据库时遇到了一个非常大的问题。好吧,我从头开始。 我创建了一个maven(神器 - > webapp)项目。我添加了文件的persistence.xml一个META-INF目录复制到我的源目录这样的:persistance.xml不会在Intellij中创建数据库

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
      version="2.0"> 
    <persistence-unit name="myDatabase" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <exclude-unlisted-classes>false</exclude-unlisted-classes> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> 
      <property name="javax.persistence.jdbc.user" value="root" /> 
      <property name="javax.persistence.jdbc.password" value="root" /> 
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/Lab6" /> 
      <property name="hibernate.hbm2ddl.auto" value="create" /> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

然后我把一些模型到我的Java源代码。我加了注释apropiate这样的:

package model; 

import javax.persistence.*; 

@Entity 
@Table(name="author") 
public class Author 
{ 
    private int Id; 
    private String firstName; 
    private String lastName; 

    @Id 
    @Column(name = "id", nullable = false) 
    @GeneratedValue(strategy= GenerationType.SEQUENCE, generator="seq") 
    public int getId() { 
     return Id; 
    } 

    public void setId(int id) { 
     Id = id; 
    } 

    @Column(name = "first_name", nullable = false) 
    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    @Column(name = "last_name", nullable = false) 
    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 
} 

这个我加入一个Servlet类连接到使用让POST方法程序进行一些操作后。没关系:)之后,我运行了该项目,并没有发生任何事情;程序运行成功,我可以进入servlet但数据库没有被创建。然后我开始在网上搜索解决方案,没有什么帮助我解决我的问题。下面是我的pom.xml文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>Lab6</groupId> 
    <artifactId>Lab6</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>Lab6 Maven Webapp</name> 
    <url>http://maven.apache.org</url> 

    <build> 
    <finalName>Lab6</finalName> 
    <testResources> 
     <testResource> 
     <directory>src/resources</directory> 
     <filtering>true</filtering> 
     </testResource> 
    </testResources> 

    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.6.1</version> 
     <configuration> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.persistence</groupId> 
     <artifactId>persistence-api</artifactId> 
     <version>1.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>6.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.1-api</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.38</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>3.0-alpha-1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.2.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>net.java.dev.glassfish</groupId> 
     <artifactId>glassfish-persistence-api</artifactId> 
     <version>b32g</version> 
    </dependency> 
    </dependencies> 
</project> 

我确实卡住了。直到现在,我在persistence.xml中检查了其他版本的提供者(eclipse),并在该文件中做了一些非常奇怪的更改,但没有成功。我也在检查战争档案。每个需要的文件都在里面(特别是persistence.xml)。 FI更改服务器的我目前的GlassFish版本不同的人,但它没有帮助:((( Reeally家伙,请帮助我,我的knowlage是ropably太低有更好的想法ghow来修复

在此先感谢

+2

你。已经打过电话了它有'perstistance.xml','persistent.xml'和'persistence.xml'。您需要复制并粘贴文件名,因为任何拼写错误都会确保它无法工作。 WAR文件中'persistence.xml'的确切路径是什么? – ngreen

+0

对这个名字的错误感到抱歉,但是当我写这个时,我几乎在睡觉。我确保你有我persistence.xml的正确名称 – fOrest94

回答

0

你缺少,告诉它如何找到你的类persistence.xml的一部分这里有几个选项:

<jar-file>MyLibrary.jar</jar-file> 
<class>model.Author</class> 

您选择的选项将取决于你的项目是如何建立

相关问题