Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 Hibernate映射内部类,错误“;无法确定:timeStamps";的类型;_Java_Json_Hibernate_Jpa - Fatal编程技术网

Java Hibernate映射内部类,错误“;无法确定:timeStamps";的类型;

Java Hibernate映射内部类,错误“;无法确定:timeStamps";的类型;,java,json,hibernate,jpa,Java,Json,Hibernate,Jpa,我有一个实体“Task”,它需要一个名为“timestamps”的内部组件,该组件保存任务提交、启动和完成时的值 @Entity public class Task { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer Id; private String Status; private Timestamps timestamps; // getters

我有一个实体“Task”,它需要一个名为“timestamps”的内部组件,该组件保存任务提交、启动和完成时的值

@Entity
public class Task {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer Id;
    private String Status;
    private Timestamps timestamps;
    // getters setters
}
然后我创建了Timestamps类

public class Timestamps {
 private Timestamp submitted;
 private Timestamp started;
 private Timestamp completed;
 //getter and setters
}
当我以JSON格式检索信息时,我应该如何进行这种映射呢

# task
{
    "task": # ASCII string
    "status": # one of "submitted", "started", "completed"
    "timestamps": {
    "submitted": # unix/epoch time
    "started": # unix/epoch time or null if not started
    "completed": # unix/epoch time or null if not completed
    }
}

如果您不想在DB中保留
时间戳
,而只想在DTO中使用它,这将有助于您:

@Transient
注释用于指示不在数据库中保留字段

@Entity
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer Id;
private String Status;
@Transient
private Timestamps timestamps;
// getters setters
}

如果要将
时间戳
持久化为一种关系,则应执行以下操作:

@Entity
public class Timestamps {
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Integer Id;
 private Timestamp submitted;
 private Timestamp started;
 private Timestamp completed;
 //getter and setters
}

@Entity
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer Id;
private String Status;
@ManyToOne
private Timestamps timestamps;
// getters setters
}

如果您不想在DB中保留
时间戳
,而只想在DTO中使用它,这将有助于您:

@Transient
注释用于指示不在数据库中保留字段

@Entity
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer Id;
private String Status;
@Transient
private Timestamps timestamps;
// getters setters
}

如果要将
时间戳
持久化为一种关系,则应执行以下操作:

@Entity
public class Timestamps {
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Integer Id;
 private Timestamp submitted;
 private Timestamp started;
 private Timestamp completed;
 //getter and setters
}

@Entity
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer Id;
private String Status;
@ManyToOne
private Timestamps timestamps;
// getters setters
}

您可以在时间戳上添加@Embeddeble注释。Hibernate将字段映射为同一表中的列。
您可能还需要在Task中的Timestamps字段中嵌入一个@(我无法确定双方是否都需要注释)

您可以在时间戳上添加@Embeddeble注释。Hibernate将字段映射为同一表中的列。
您可能还需要在Task中的Timestamps字段中嵌入一个@(我无法确定双方是否都需要注释)

@Spara It不起作用:我没有为entity:com.tasks.Timestamps指定标识符。如果您不想在数据库中保留时间戳,可以使用
@Transient
。如果要将时间戳作为关系在DB中分配,则应将其作为带有标识符的实体,然后是与任务的
@ManyToOne
关系enitity@Spara它不起作用:我没有为entity:com.tasks.Timestamps指定标识符。如果您不想在数据库中保留时间戳,可以使用
@Transient
。如果你想把时间戳作为一个关系在数据库中,你应该把它作为一个带有标识符的实体,然后用一个
@ManyToOne
与任务entityit的关系就可以了。但是,我希望将时间戳作为任务列保存在数据库中。令人恼火的是,我需要以这种特定的格式制作JSON,它可以正常工作。但是,我希望将时间戳作为任务列保存在数据库中。令人恼火的是,我需要以这种特定的格式制作JSON。