我不确定处理 collection/lookup tables/in 的最佳做法是什么RequestFactory
。
例如,如果我有以下两个域对象:
@Entity
public class Experiment {
private Long id;
private String name;
@ManyToOne(cascade={CascadeType.PERSIST,CascadeType.MERGE})
private UnitOfMeasure unitOfMeasure;
public Experiment() { }
public String getName() {
return name;
}
public Long getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public UnitOfMeasure getUnitOfMeasure() {
return unitOfMeasure;
}
public void setUnitOfMeasure(UnitOfMeasure unitOfMeasure) {
this.unitOfMeasure = unitOfMeasure;
}
}
@Entity
public class UnitOfMeasure {
private Long id;
private String unit_type;
public UnitOfMeasure() { }
public String getUnitType() {
return unit_type;
}
public Long getId() {
return id;
}
public void setUnitType(String unitType) {
this.unit_type = unitType;
}
}
Experiment
这是表中的 ForeignKey和UnitOfMeasure
使用 ForeignKey之间的正常单向 1:n 关系Experiment
。
我有数量有限的不同UnitOfMeasure
实例,这些实例通常不会改变。
Web 应用程序提供了一个视图,用户可以在其中更改Experiment
实例的某些属性。该视图使用Editor framework
. 为了更改UnitOfMeasure
特定的,Experiment
我使用 aValueListBox
并渲染unit_type
属性。
因为可用UnitOfMeasure
实例的列表是静态的,所以我AutoBeanFactory
用来创建一个 json 字符串,将其放入 HTML 主机页面,并在应用程序启动期间解析它(对于所有其他集合,如表值也是如此)并将它们存储在 Singleton 类实例中(AppData
) 我传递给`setAcceptableValues`。
目前我UnitOfMeasureProxy
来自EntityProxy
但为了解码/编码它,AutoBeanFactory
我必须用EntityProxyCategory
. 我不知何故怀疑 aValueProxy
会更合适。
然而,ValueProxy
当我改变UnitOfMeasure
一个特定Experiment
的实例时,整个ValueProxy
实例都是通过网络传输的。
然而,从数据库的角度来看,只需要更改Experiment
表中外键的值。
那么分别收集表格和子值的最佳实践( ValueProxy
vs )是什么?EntityProxy