如何使用jpa将一个简单的类(非实体)与dto(Entity)类映射 [英] How to map one simple class(not an entity) with dto(Entity) class using jpa

查看:465
本文介绍了如何使用jpa将一个简单的类(非实体)与dto(Entity)类映射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用非@Entity类进行@OneToOne映射,但看来我做错了,请帮忙.这是以下类的错误日志.

I tried @OneToOne Mapping with non @Entity class but it seems i am doing something wrong please help. Here is error log for the following classes.

由以下原因引起:org.hibernate.AnnotationException:com.package.model.Hotel.address上的@OneToOne或@ManyToOne引用了未知实体:com.package.model.Address

Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.package.model.Hotel.address references an unknown entity: com.package.model.Address

这是我的 Address.java

Here is my Address.java

private String street;
private String city;
private String state;
private int pincode;
private String country;
private String locationCoordinates;
//Getters and setters removed from the code

这是我的 Hotel.java

Here is my Hotel.java

@Id
@GeneratedValue
private int id;
private String password;
private String name;
private String contactPerson;
private String email;
private String countryCode;
private long phone1;
private long phone2;

@OneToOne(cascade=CascadeType.ALL)
private Address address;
private String description;

地址类不是@Entity类只有酒店类具有@Entity.现在,我试图使用spring和JPA将值 Address.java 的数据插入/创建(表)数据到单个酒店表中,而我在Eclipse控制台中遇到了麻烦.

Address class is not @Entity class Only Hotel class have @Entity. Now i am trying to insert/create(table) data with the value of Address.java using spring and JPA into a single hotel table, And i am getting above complain in my Eclipse console.

这是我试图从中获取数据的RestController

Here is my RestController from where i am trying to get data

@Autowired
private RoomRepository roomRepository;
//RoomRepository is Interface which is extending JpaRepository

@GetMapping("hotels")
public List<Room> retriveAllHotels(){
    return roomRepository.findAll();
}

推荐答案

只需:

  1. 将地址类标记为@Embeddable
  2. 将指向酒店类地址的链接标记为@Embedded
  3. 删除@OneToOne

,地址"字段将成为酒店实体的一部分

and the Address fields will be a part of a Hotel entity

这篇关于如何使用jpa将一个简单的类(非实体)与dto(Entity)类映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆