Java 版本应该是api返回的DTO的一部分吗?
我有一个版本字段的实体Java 版本应该是api返回的DTO的一部分吗?,java,rest,etag,Java,Rest,Etag,我有一个版本字段的实体 @Data @NoArgsConstructor @AllArgsConstructor @javax.persistence.Entity @Table(name = "meals", catalog = "nutrientTracker") public class Meal implements Entity<Long> { @Id @GeneratedValue(strategy = Genera
@Data
@NoArgsConstructor
@AllArgsConstructor
@javax.persistence.Entity
@Table(name = "meals", catalog = "nutrientTracker")
public class Meal implements Entity<Long> {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "comment")
private String comment;
@Column(name = "date")
private LocalDateTime date;
@Column(name = "foods")
private String foods;
@Column(name = "eaten")
private boolean eaten;
@Column(name = "price")
private float price;
@Column(name = "latitude")
private double latitude;
@Column(name = "longitude")
private double longitude;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@Version
@Column(name = "VERSION")
private long version;
@Override
public Long getId() {
return this.id;
}
}
无论如何。这也是坏习惯吗?不是
version列用于对数据库执行某些操作,因此不应向API用户公开。根据文件:
指定用作其乐观锁定值的实体类的版本字段或属性。该版本用于确保执行合并操作时的完整性以及乐观并发控制
没有
version列用于对数据库执行某些操作,因此不应向API用户公开。根据文件:
指定用作其乐观锁定值的实体类的版本字段或属性。该版本用于确保执行合并操作时的完整性以及乐观并发控制
好的,我在ETag的MD5散列中使用了它,同时使用了一些服务器端密钥。好吗?好的。我也这么认为。好吧,我在我的ETag的MD5散列中使用了它,同时使用了一些服务器端密钥。好吗?好的。我想是的。
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MealDTO implements DTO<Meal, Long> {
@ApiModelProperty(required = true, example = "-1", value = "id")
private long id;
@ApiModelProperty(required = true, example = "tasty", value = "comment")
private String comment;
@ApiModelProperty(example = "1994-11-05T13:15:30Z", value = "date")
private LocalDateTime date;
@ApiModelProperty(example = "1605294438", value = "dateEpoch")
private long dateEpoch;
@ApiModelProperty(required = true, example = "banana,apple", value = "foods")
private String foods;
@ApiModelProperty(example = "false", value = "eaten")
private boolean eaten;
@ApiModelProperty(example = "6.9", value = "price")
private float price;
@ApiModelProperty(example = "69.6969696969", value = "latitude")
private double latitude;
@ApiModelProperty(example = "42.0420420420", value = "longitude")
private double longitude;
@ApiModelProperty(example = "1", value = "userId")
private long userId;
@ApiModelProperty(example = "1", value = "etag")
private String etag;
}
const result: Meal = response.data;
result.etag = response.headers['etag'];
return result;