我有一个JPA实体,其中包含其他实体实例的集合。 我需要从集合中删除一些实例并更改其他内容,仅用于View,我不想更改我的数据库内容。 最好的方法是什么?
复制我的对象并使用它。
删除延迟加载(或从此主bean获取所需的全部内容)。然后关闭hibernate会话,并使用分离的对象。
还有别的吗?
更新
我的豆子
@Entity
@Table(name = "client")
public class Client extends AbstractPersistentEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CLIENTS_SEQ")
@SequenceGenerator(name = "CLIENTS_SEQ", sequenceName = "clients_seq")
private Integer id;
@NotEmpty
@Column(name = "name")
private String name;
@OneToMany(mappedBy = "clientId")
private Collection<ContactPhones> contactPhonesCollection;
}
我想删除一些ContactPhones以供查看。但它可能会很复杂,可能在ContactPhones将是另一个集合,我想删除它。这样的事情。
答案 0 :(得分:2)
如果您不想从数据库中实际删除任何行,我认为最好的选择是将实体从会话中分离出来并像使用任何其他Java对象一样使用它。