当前位置: 首页 > 知识库问答 >
问题:

Hibernate:[实体]未映射

史烈
2023-03-14

我在Kotlin-vertx项目中配置了Hibernate,我设法设置了所有内容,但当我运行HQL查询时,它会输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="default">
        <description>Persistence XML</description>
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>

            <!-- Hibernate Config -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="hibernate.generate_statistics" value="false" />
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
            <property name="hibernate.connection.charSet" value="UTF-8"/>
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="false"/>
            <property name="hibernate.use_sql_comments" value="false"/>

            <!-- JDBC Config -->
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/monolith_db" />
            <property name="javax.persistence.jdbc.user" value="monolith_user" />
            <property name="javax.persistence.jdbc.password" value="monolith_user_pwd" />

        </properties>
    </persistence-unit>
</persistence>
val query = em.createQuery("SELECT m FROM Movie AS m WHERE m.id=:id", Movie::class.java)
                query.setParameter("id", 2)
                val movie = query.singleResult
@Entity
@Table(name = "movie")
class Movie(
    var title: String = "",
    var summary: String = ""
) : StandardEntity() {

    override fun toString(): String {
        return "Movie[id=$id, title=$title, summary=${summary.substring(0, 30)}"
    }
}

提前谢了。

共有1个答案

高山
2023-03-14

我有一个非常相似的问题,并且多次遇到这个问题,对于您的错误,它看起来与您的JPA提供程序的配置有关,尝试用spring来配置它,看看是否有帮助

我认为这是根本原因,因为在其他文章中,它告诉我Intellij无法映射实体,因为没有配置JPA提供者,所以一旦我修复了如下所述的映射,它就不再失败了

在我的例子中,它更愚蠢,因为我使用的是@entity(name=“nameofthetable”),而它应该是@entity(name=“nameoftetty”)、@table(name=“nameoftable”)

也给下一个试一下,看看是否有帮助。尝试在@entity中为您的实体添加一个自定义名称,并使用该名称,即:

@Entity(name = "MyMovieEntity")
@Table(name = "movie")

然后尝试在查询中使用它:

val query = em.createQuery("SELECT m FROM MyMovieEntity AS m WHERE m.id=:id", Movie::class.java)
                query.setParameter("id", 2)
                val movie = query.singleResult
 类似资料:
  • 我想映射类主题到主题表。 主题。JAVA 主题。哈佛商学院。xml 冬眠cfg。xml 我正在读取csv文件的内容,并希望使用以下代码将其插入数据库。 管理ata.java 我得到以下错误 线程“main”组织中出现异常。冬眠MappingException:未知实体:组织中的主题。冬眠impl。SessionFactoryImpl。getEntityPersister(SessionFactor

  • 是否可以在不映射一对多关系的情况下设置级联? 我有两个实体: 和 如果我试图删除一个用户,并且存在该用户的任何记录,那么由于外键的原因,它显然会失败。我想在删除用户之前删除该用户的所有记录。我看到两种选择: > 映射s为关系中的,并设置。 在删除用户之前手动删除它们 有没有第三个选项,如何在用户实体中设置无映射记录的级联?

  • 我使用Hibernate已经有一段时间了,而且非常成功。然而,我昨天遇到了一个问题,这里的答案将在将来节省大量调试时间。 我忘了在我的hibernate中添加hibernate映射。新实体的cfg。 当我试图加载这个实体时,我本以为会得到某种运行时异常,但它却什么也没加载,继续运行,好像一切都很好。 我正在使用以下代码加载实体。 我想一个错误,如果我尝试加载一个实体,没有映射在我的hibernat

  • 问题内容: 我有一个经典的Hibernate 用。工作正常。但是,数据库中大约有500个不同的值,我需要将它们中的大约30个映射到Java类(子类),将其余的映射到父Java类。 可以将问题建模为对Animal类的示例继承。 因此,我在Java代码中使用定义了大约30个Animal的子类。当Hibernate发现鉴别器的未知值时,它将抛出。但是,我需要将这些未知的标识符值映射到一个实体,最好是An

  • 我对这些技术是新的,所以提前道歉。 我在我的应用程序中使用了springboot、Spring JPA、hibernate和mapstruct。

  • 问题内容: 我正在尝试使用注释将Spring与Hibernate结合使用,并且出现以下错误: 这是我的设置… 我的实体: 我的豆子: } 我在Spring中启用注释: 当我通过BlazeDS从Flex应用程序调用Foo.addBar方法时收到错误消息。 我真的很想避免其他配置,而且似乎所有这些都可以解决。 我正在使用Spring 3.0.0.RC1,Hibernate Annotations 3.