我有一个包含集合的实体类:
@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 获得路径列表?此外,是否可以将“文件”作为单个结果获取?
任何帮助表示赞赏。