查询 LinearState 状态下的嵌套集合
Querying nested collections in LinearState states
我们是否有嵌套在状态中的可查询持久集合的模式?
class ALinearState(val items: List<Item>) : LinearState
data class Item(name: String, ...)
对于给定的 ALinearState
、alpha
,我们希望存储相同 UniqueIdentifier
的版本。每个版本都会有一组离散的 items
。我们希望能够为匹配过滤器的 items
查询 table,然后恢复匹配过滤的 items
.
的 alpha
的设置状态
有办法实现吗?
谢谢。
您可以使用任何形式的 JPA/Hibernate 模型定义来代表您的合同状态。例如:
object TestSchema : MappedSchema(SchemaFamily::class.java, 1, setOf(Parent::class.java, Child::class.java)) {
@Entity
@Table(name = "Parents")
class Parent : PersistentState() {
@OneToMany(fetch = FetchType.LAZY)
@JoinColumns(JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id"), JoinColumn(name = "output_index", referencedColumnName = "output_index"))
@OrderColumn
@Cascade(CascadeType.PERSIST)
var children: MutableSet<Child> = mutableSetOf()
}
@Entity
@Table(name = "Children")
class Child {
@Id
@GeneratedValue
@Column(name = "child_id", unique = true, nullable = false)
var childId: Int? = null
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns(JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id"), JoinColumn(name = "output_index", referencedColumnName = "output_index"))
var parent: Parent? = null
}
}
就后续查询而言,最好使用 JDBC 查询来执行您可能拥有的任何自定义查询(使用标准 JDBC 或 Hibernate)。
我们是否有嵌套在状态中的可查询持久集合的模式?
class ALinearState(val items: List<Item>) : LinearState
data class Item(name: String, ...)
对于给定的 ALinearState
、alpha
,我们希望存储相同 UniqueIdentifier
的版本。每个版本都会有一组离散的 items
。我们希望能够为匹配过滤器的 items
查询 table,然后恢复匹配过滤的 items
.
alpha
的设置状态
有办法实现吗? 谢谢。
您可以使用任何形式的 JPA/Hibernate 模型定义来代表您的合同状态。例如:
object TestSchema : MappedSchema(SchemaFamily::class.java, 1, setOf(Parent::class.java, Child::class.java)) {
@Entity
@Table(name = "Parents")
class Parent : PersistentState() {
@OneToMany(fetch = FetchType.LAZY)
@JoinColumns(JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id"), JoinColumn(name = "output_index", referencedColumnName = "output_index"))
@OrderColumn
@Cascade(CascadeType.PERSIST)
var children: MutableSet<Child> = mutableSetOf()
}
@Entity
@Table(name = "Children")
class Child {
@Id
@GeneratedValue
@Column(name = "child_id", unique = true, nullable = false)
var childId: Int? = null
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns(JoinColumn(name = "transaction_id", referencedColumnName = "transaction_id"), JoinColumn(name = "output_index", referencedColumnName = "output_index"))
var parent: Parent? = null
}
}
就后续查询而言,最好使用 JDBC 查询来执行您可能拥有的任何自定义查询(使用标准 JDBC 或 Hibernate)。