私はこのようになりますエンティティの構造を持っている:Can Entity属性は、同じエンティティの他の属性によってマップできますか?
@Entity
public class Event {
@Id
private Long id;
@ManyToOne
private Device device;
@Column
private Severity severity;
... getters/setters/other attrs ...
}
@Entity
public class Device {
@Column
private Impact impact;
@ManyToOne
private PriorityMatrix priorityMatrix;
... getters/setters/other attrs ...
}
@Entity
public class Priority {
@EmbeddedId
private PriorityId id;
@Column
private Long value;
... getters/setters ...
}
@Embeddable
public class PriorityId {
@Column
private Severity severity;
@Column
private Impact impact;
@ManyToOne
private PriorityMatrix matrix;
... getters/setters ...
}
インパクトと重要度は一定の値を持つ列挙型です。
デバイスのインパクトおよび優先度マトリックスとイベントの重大度によってマッピングされるイベントエンティティに「一時的な」属性「優先度」を追加できますか?はいの場合、どうですか? SQLで
それが優先順位の行列が更新され、共有の異なるデバイスで、そうなったときに優先順位の値が常に得なければならないことができるので、いくつかは、私はこれをしたい
SELECT priority_matrix.priority_value,
-- event attributes
-- device attributes
FROM event
INNER JOIN device ON { -- event x device join }
INNER JOIN priority_matrix ON {
device.priority_matrix_id = priority_matrix.id
AND device.impact = priority_matrix.impact
AND event.severity = priority_matrix.severity
}
のようなものに参加するだろう私はイベントをロードする瞬間に優先度の値をロードします。
ええ、既にそのようなものが使用されていますが、文字通りデータベースに何千ものイベントがあります。そのようなものを使用することのパフォーマンスは本当に悪いです:/ –