【问题标题】:Hiberante automatic list mapping - failure hibernate3:hbm2ddlHibernate 自动列表映射 - 失败 hibernate:hbm2ddl
【发布时间】:2013-12-22 11:16:12
【问题描述】:

我是第一次使用休眠。我创建了 POJO 类并希望将它们映射到 db 模式。其中一个类包含 java.util.List 的其他元素(也是 POJO 对象),我收到以下错误:

[ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.1:hbm2ddl (default-cli) on project webDB: Execution default-cli of goal org.codehaus.mojo:hibernate3-maven-plugin:2.1:hbm2ddl failed: Could not determine type for: java.util.List, for columns: [org.hibernate.mapping.Column(fields)]

maven build 调用显示此错误

mvn hibernate3:hbm2ddl

我的课程是这样的:

父抽象类:

@MappedSuperclass
public abstract class WebDBEntity {

    private Date dateCreated = null;
    private Date dateModified = null;
    private String author = null;
    private String modifier = null;

    public Date getDateCreated() {
        return dateCreated;
    }
    public void setDateCreated(Date dateCreated) {
        this.dateCreated = dateCreated;
    }
    public Date getDateModified() {
        return dateModified;
    }
    public void setDateModified(Date dateModified) {
        this.dateModified = dateModified;
    }
    public String getAuthor() {
        return author;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
    public String getModifier() {
        return modifier;
    }
    public void setModifier(String modifier) {
        this.modifier = modifier;
    }
}

实体:

右.java:

@Entity
public class Right extends WebDBEntity{

    @Id
    @ManyToOne(fetch=FetchType.LAZY)
    private String name;
    @Column
    private String description;

    public Right( String pName, String pDesc){
        name = pName;
        description= pDesc;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

Group.java:

@Entity
public class Group extends WebDBEntity{

    @Id
    @Column
    private String name;
    @Column
    private Boolean active;
    @Column
    private String description;
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="name")
    @JoinColumn(name="RIGHT_NAME", nullable=false)
    private List<Right> rights;

    public Group(String pName, String pDescr, Boolean pActive) {
        name = pName;
        description = pDescr;
        active = pActive;
    }

    public List<Right> getRights() {
        return rights;
    }

    public void setRights(List<Right> rights) {
        this.rights = rights;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Boolean getActive() {
        return active;
    }
    public void setActive(Boolean active) {
        this.active = active;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

还有我的 pom(没有开头):

<name>webDB</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.jboss.spec</groupId>
            <artifactId>jboss-javaee-6.0</artifactId>
            <version>1.0.0.Final</version>
            <type>pom</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0-rev-1</version>
        </dependency>
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>jta</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.2.7.SP1</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.2.7.SP1</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.5.6-Final</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-tools</artifactId>
            <version>3.2.4.GA</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.27</version>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                        <compilerArguments>
                            <endorseddirs>${endorsed.dir}</endorseddirs>
                        </compilerArguments>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.1.1</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.1</version>
                    <executions>
                        <execution>
                            <phase>validate</phase>
                            <goals>
                                <goal>copy</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${endorsed.dir}</outputDirectory>
                                <silent>true</silent>
                                <artifactItems>
                                    <artifactItem>
                                        <groupId>javax</groupId>
                                        <artifactId>javaee-endorsed-api</artifactId>
                                        <version>6.0</version>
                                        <type>jar</type>
                                    </artifactItem>
                                </artifactItems>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>hibernate3-maven-plugin</artifactId>
                    <version>2.1</version>
                    <executions>
                        <execution>
                            <phase>process-classes</phase>
                            <goals>
                                <goal>hbm2ddl</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <components>
                            <component>
                                <name>hbm2ddl</name>
                                <implementation>annotationconfiguration</implementation>
                            </component>
                            <component>
                                <name>hbmdoc</name>
                            </component>
                        </components>
                        <componentProperties>
                            <configurationfile>src/main/resources/hibernate.cfg.xml</configurationfile>
                            <outputfilename>schema.ddl</outputfilename>
                            <drop>false</drop>
                            <create>true</create>
                            <export>false</export>
                            <format>true</format>
                        </componentProperties>
                    </configuration>
                </plugin>


            </plugins>
        </pluginManagement>
    </build>

</project>

我想做的是创建一个数据库模式并将其应用于数据库,但现在我什么也做不了,因为即使 mvn hibernate3:hbm2ddl 也无法正常工作。我该怎么办?

【问题讨论】:

  • 尝试将您的 @JoinColumn 注释移动到 name 属性的 Right 类中。我不确定这是否会导致您的错误,但我知道应该是这样。

标签: java hibernate list maven mapping


【解决方案1】:

我在教程HERE找到了答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2022-08-15
    相关资源
    最近更新 更多