【发布时间】:2025-12-15 22:15:02
【问题描述】:
我有一个包含集合的实体类:
@Entity(name = "Directory")
@Converters({@Converter(name = "PathConvert", converterClass = PathConvert.class)})
public class Directory {
@Id
protected String id;
@ElementCollection
@CollectionTable(name = "Directory_Files", joinColumns = @JoinColumn(name = "id"))
@Convert("PathConvert")
@Column(name = "file")
protected Set<Path> files;
}
转换器PathConvert 是必需的,因为java.nio.file.Path 没有实现Serializable,因此不能直接存储在列中。它只是使用 toString() 将 Path 转换为 String 并使用 Paths.get(str) 将 String 转换回 Path。
现在我想通过 JPQL 查询获取设置的“文件”。查询(使用 Eclipse Link 执行)
SELECT u.files FROM Directory u WHERE u.id = :id
返回一个字符串列表,而不是一个路径列表作为结果。因此,如何使用 Eclipse Link 获得路径列表?此外,是否可以将“文件”作为单个结果获取?
感谢任何帮助。
【问题讨论】:
标签: jpa entity eclipselink converter jpql