我正在使用ISIS1.16.2在一个项目中工作,并努力解决附件和一些相关问题。我希望,你能帮我(至少对我的一部分问题)。
上下文:我的项目类需要存储任意数量的附件(Blobs和/或Clobs)。
来自一个附件的示例:
@Persistent(defaultFetchGroup = "false",
columns = { @Column(name = "attachment_name"),
@Column(name = "attachment_mimetype"),
@Column(name = "attachment_bytes",
jdbcType = "BLOB",
sqlType = "LONGVARBINARY")
})
@Column(allowsNull = "true")
private Blob attachment;多附件的第一种方法:
@javax.jdo.annotations.Persistent(???)
@org.apache.isis.applib.annotation.Property(
domainEvent = AttachmentDomainEvent.class,
optionality = Optionality.OPTIONAL,
hidden = Where.ALL_TABLES)
@org.apache.isis.applib.annotation.Collection
@lombok.Getter
private List<Blob> attachments = new LinkedList<>();@Action public void uploadFiles(List<Blob> files) {...}也许有些离题,但与上面的问题有关:
List<Blob> attachments; (参见上文),我为表中的每个附件获取??? EntityModel objectAdapter oid: null,因为Blob/Clob类是值类型而不是引用类型。提供正确的信息以正确呈现这些值类型的“正确”方法是什么?(我对枚举集也有同样的问题)提前感谢!
发布于 2019-01-30 23:07:04
Ans 1:不可能将List<Blob>存储为单个属性。相反,您需要定义一个实体,将其称为类似于Document的东西,并让它有一个Blob。然后,您可以拥有一个List<Document>。这似乎是更多的工作(我想是的),但您可能会有一些元数据,您可能想要存储关于这些Blob的。实际上,Blob成为一个实体而不是一个值。
Ans 2:不支持,请参阅前面的答案。
Ans 3:不,它不是。我认为实现这样的东西是可能的(我看到Wicket 7有一个小部件1来支持它),所以请在Apache上开一张票。
Ans 4:这是一个实体,如Document (按ans )。( 1)会让你做的。您仍然可以提供下载操作,这将是Document上的常规操作.只要返回Blob作为动作的返回类型,它就会被下载。另外,如果您存储的这些blobs是PDF,那么可以从代码平台上查看pdfjs查看器2。
https://stackoverflow.com/questions/54442081
复制相似问题