无法向Spring Data Starter项目添加第二个实体

舍克哈尔

我从https://spring.io/guides/gs/accessing-data-jpa/获得了Spring Data JPA入门项目我可以创建CustomerCustomerRepository类,并使Customer实体持久化。

但是,当我添加另一个实体Person和aPersonRepository并尝试保留该实体时,出现如下所示的错误。就像在内部Application.java某种内部类中$1,Spring数据试图将其映射为一个实体。

java.lang.IllegalArgumentException:未知实体:hello.Application $ 1

package hello;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
@ToString
@NoArgsConstructor
@Data
public class Person {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private int age;
}
package hello;

import org.springframework.data.repository.CrudRepository;

public interface PersonRepository extends CrudRepository<Person, Long> {
}
package hello;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
@Slf4j
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }

    /*
    @Bean
    public CommandLineRunner demo(CustomerRepository repository) {
        return (args) -> {
            repository.save(new Customer("Jack", "Bauer"));
            repository.save(new Customer("Chole", "O'Brian"));
            repository.save(new Customer("Kim", "Bauer"));
            repository.save(new Customer("David", "Palmer"));
            repository.save(new Customer("Michelle", "Dessler"));

            // fetch all customers
            log.info("Customers found with findAll():");
            log.info("-------------------------------");
            repository.findAll().forEach(c -> log.info(c.toString()));
        };
    }
    */

    @Bean
    public CommandLineRunner demo(PersonRepository repository) {
        return (args) -> {
            repository.save(new Person(){{
                setAge(20);
            }});

            // fetch all customers
            log.info("Customers found with findAll():");
            log.info("-------------------------------");
            repository.findAll().forEach(c -> log.info(c.toString()));
        };
    }
}

申请费$ 1; 嵌套异常是java.lang.IllegalArgumentException:未知实体:hello.Application $ 1,位于org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:373)〜[spring-orm-5.1.8.RELEASE.jar:5.1 .8.RELEASE]在org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255)〜[spring-orm-5.1.8.RELEASE.jar:5.1.8.RELEASE]在org.springframework .orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:527)〜[spring-orm-5.1.8.RELEASE.jar:5.1.8.RELEASE] at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator。 java:61)〜[spring-tx-5.1.8.RELEASE.jar:5.1.8.RELEASE],位于org.springframework.dao.support。

莱西亚克

该错误消息清楚地表明您具有未映射的类。你正确地扣除了

就像在Application.java中一样,Spring数据尝试将其映射为一个实体的内部类$ 1。

有问题的内部类在您的代码中定义为的子类。 Person

repository.save(new Person(){{
    setAge(20);
}});

该类是一个匿名内部类,带有Instance Initializer块。请参阅什么是初始化块?

使用下面的代码创建一个新的人,而无需将其子类化:

Person p = new Person();
p.setAge(20);
repository.save(p)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在WPF中向第二个实体添加CRUD操作

来自分类Dev

莱宁根类路径问题,向项目添加了第二个文件

来自分类Dev

向@ html.textboxfor()添加第二个项目

来自分类Dev

向当前查询添加第二个SUM

来自分类Dev

向lapply函数添加第二个参数

来自分类Dev

向ggplot添加第二个y轴

来自分类Dev

向Angular模块添加第二个服务

来自分类Dev

向第二个左连接添加条件

来自分类Dev

WPF findancestor无法处理第二个项目

来自分类Dev

无法添加第二个ng-controller

来自分类Dev

如何在Spring Data Neo4J 3.0.0(发行版)中的节点上添加第二个标签?

来自分类Dev

在spring-data-neo4j-4中将第二个标签添加到继承的节点

来自分类Dev

在spring-data-neo4j-4中将第二个标签添加到继承的节点

来自分类Dev

无法在同一Firebase项目上为第二个应用程序添加推送证书

来自分类Dev

无法在同一Firebase项目上为第二个应用程序添加推送证书

来自分类Dev

在mongoDB中向$ match添加第二个参数

来自分类Dev

当我向其添加第二个对象时,未加载UWP ResourceDictionary

来自分类Dev

WordPress-向定制器添加第二个徽标

来自分类Dev

向菜单切换添加第二个JavaScript函数

来自分类Dev

在mongoDB中向$ match添加第二个参数

来自分类Dev

向散点图添加(第二个)x轴以显示组信息

来自分类Dev

如何向MainActivity添加第二个按钮代码

来自分类Dev

向按钮添加第二个功能并禁用某些类

来自分类Dev

使用 args 向 python 脚本添加第二个命令

来自分类Dev

向现有的 matplotlib 图表添加第二个图

来自分类Dev

如何向热图添加第二个比例?

来自分类Dev

如何向 Excel 的此 VBA 代码添加第二个附件?

来自分类Dev

项目中的第二个servlet无法正常工作

来自分类Dev

无法将第二个模板加载到我的Django项目中

Related 相关文章

  1. 1

    如何在WPF中向第二个实体添加CRUD操作

  2. 2

    莱宁根类路径问题,向项目添加了第二个文件

  3. 3

    向@ html.textboxfor()添加第二个项目

  4. 4

    向当前查询添加第二个SUM

  5. 5

    向lapply函数添加第二个参数

  6. 6

    向ggplot添加第二个y轴

  7. 7

    向Angular模块添加第二个服务

  8. 8

    向第二个左连接添加条件

  9. 9

    WPF findancestor无法处理第二个项目

  10. 10

    无法添加第二个ng-controller

  11. 11

    如何在Spring Data Neo4J 3.0.0(发行版)中的节点上添加第二个标签?

  12. 12

    在spring-data-neo4j-4中将第二个标签添加到继承的节点

  13. 13

    在spring-data-neo4j-4中将第二个标签添加到继承的节点

  14. 14

    无法在同一Firebase项目上为第二个应用程序添加推送证书

  15. 15

    无法在同一Firebase项目上为第二个应用程序添加推送证书

  16. 16

    在mongoDB中向$ match添加第二个参数

  17. 17

    当我向其添加第二个对象时,未加载UWP ResourceDictionary

  18. 18

    WordPress-向定制器添加第二个徽标

  19. 19

    向菜单切换添加第二个JavaScript函数

  20. 20

    在mongoDB中向$ match添加第二个参数

  21. 21

    向散点图添加(第二个)x轴以显示组信息

  22. 22

    如何向MainActivity添加第二个按钮代码

  23. 23

    向按钮添加第二个功能并禁用某些类

  24. 24

    使用 args 向 python 脚本添加第二个命令

  25. 25

    向现有的 matplotlib 图表添加第二个图

  26. 26

    如何向热图添加第二个比例?

  27. 27

    如何向 Excel 的此 VBA 代码添加第二个附件?

  28. 28

    项目中的第二个servlet无法正常工作

  29. 29

    无法将第二个模板加载到我的Django项目中

热门标签

归档