2017-12-27 940 views
0

目前我正在试图做到这一点:是否可以在不影响第一个对象的情况下将@Entity对象转换为普通对象?

我有我的模型

@Entity 
@Table(name = "student") 
public class Student { 

    @Id 
    @GeneratedValue(strategy = IDENTITY) 
    private long id; 

    @Column(name = "name") 
    private String name; 
    ... 

而且我还有其他的对象,可以说PlainStudent

public class PlainStudent{ 

    private long id; 
    private String name; 

... other fields 

怎么可能投学生到学生是一个实体的平原学生?我不知道如何让它们都实现相同的接口,我不知道是否可能。有任何想法吗?

我有我的studentRepository基本上我需要返回的学生名单以后将它们转换成PlainStudent(不知道有没有更新我的资料库返回PlainStudent为好)

我应该放在哪里注释?

+0

'@ Entity'只是JPA使用的元数据。它并不是真的需要类类型转换或继承。你想解决什么问题? –

+0

那么'学生'将不得不延长'PlainStudent'作为首发 – Antoniossss

+0

我编辑了我的文章,请看看 – jpganz18

回答

1

我不明白你为什么会需要它,因为JPA注解有JPA以外没有影响,但如果你这样做,你可以写一个构造函数:

PlainStudent (Student student) { this.id = student.id; this.name = student.name; ...} 

,然后使用它:

PlainStudent plainStudent = new PlainStudent(student);

顺便说一句,JPA支持继承:"Entities may extend both entity and non-entity classes, and non-entity classes may extend entity classes."。所以如果学生要延伸PlainStudent,你可以使用演员。但是在学生中你必须注解吸气剂,因为变量会被继承。

相关问题