【发布时间】:2020-08-13 16:44:26
【问题描述】:
blaze 持久化是否支持实体到键值对的转换,EntityView 字段的名称也可以与实际实体的名称不同
@Entity
@Table(name = "users")
public class User {
@Column
private String name;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private Set<UserPropertyValue> userPropertyValues = new HashSet<>();
}
@Entity
@Table(name = "user_property_values")
public class UserPropertyValue {
@Column
private String value;
@ManyToOne
JoinColumn(name = "properties_id")
private Property property;
}
@Entity
@Table(name = "properties")
public class Property {
@Id
private Long id;
@Column
private String name;
}
我希望 EntityView 像这样。
@EntityView(User.class)
interface UserView {
private String getUserName();
private HashMap<String, String> userPropertyValues();
}
基本上 name 是 username 这里 userPropertyValues 应该是 HashMap 包含:
- 键作为属性 -> 名称
- 值作为 PropertyValues -> 值
它还有助于创建自定义转换器,比如我想将 LocalDateTime 更改为具有各种不同格式/模式的字符串吗?
【问题讨论】:
-
仅供参考,我们刚刚发布了 1.5.0,它实现了对映射地图的支持。有关更多信息,请参阅文档:persistence.blazebit.com/documentation/1.5/entity-view/manual/…
标签: java hibernate jpa spring-data-jpa blaze-persistence