Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以将@Entity对象强制转换为普通对象而不影响第一个对象?_Java - Fatal编程技术网

Java 是否可以将@Entity对象强制转换为普通对象而不影响第一个对象?

Java 是否可以将@Entity对象强制转换为普通对象而不影响第一个对象?,java,Java,我目前正在尝试这样做: 我有我的模型 @Entity @Table(name = "student") public class Student { @Id @GeneratedValue(strategy = IDENTITY) private long id; @Column(name = "name") private String name; ... 我还有另一个目标,比如说,普通学生 public class PlainStuden

我目前正在尝试这样做:

我有我的模型

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

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

    @Column(name = "name")
    private String name;
    ...
我还有另一个目标,比如说,普通学生

public class PlainStudent{

   private long id;
   private String name;

... other fields
当学生是一个实体时,怎么可能将学生转换为普通学生?我不知道如何使它们都实现相同的接口,我也不知道是否可能。有什么想法吗

我有我的studentRepository,基本上我需要返回一个学生列表,以便稍后将其转换为PlainStudent(不知道是否需要更新我的存储库以返回PlainStudent)


我应该把注释放在哪里?

我不明白你为什么需要它,因为JPA注释在JPA之外没有效果,但是如果你这样做了,你可以编写一个构造函数:

PlainStudent (Student student) { this.id = student.id; this.name = student.name; ...}
然后使用它:

普通学生普通学生=新普通学生(学生)


顺便说一句,JPA支持继承:。所以,若学生要扩展PlainStudent,你们可以使用演员阵容。但是在Student中,您必须注释getter,因为变量将被继承。

@Entity
只是JPA使用的元数据。它实际上与类转换或继承无关。你想解决什么问题?嗯
Student
必须扩展
PlainStudent
至于我的帖子,请看一看你想投吗?或者把普通学生当作DTO?我认为你根本不需要普通学生课程。除了实体注释外,Entity Student类似乎与Plainstuent相同。您可以根据需要创建、更新和/或删除任意多个Entity Student对象,并且在调用存储库上的save、update或delete并传入要保存、更新或删除的实际实体对象之前,您所做的任何操作都不会保留到存储库中。