基地
我有一个由JPA(EclipseLink)管理的mysql DB(实体和控制器+持久化单元)。GUI是基于JavaFX的。
信息
public <T, S> Function<T, S> getRefactor() {
return o -> {
Object rtn = null;
//adapt **o** it to JavaFX bean
return (S) rtn;
};
}
我想这不是最好的解决办法。
问题没有混合模式!我认为在服务器端使用javafx属性是疯狂的,即使是超级懒惰的实现。
有一个灵活的解决方案,可以拥有JavaFX Bean的所有优点,例如双向绑定,并保持JPA实体代码不变?
所以...我正在使用一个中间层来将两者进行通信。
提前致谢
我通常主张在JPA实体中使用JavaFX属性:我确实认为没有明显的理由不这样做。
但是,如果希望避免这样做,可以使用JavaBeanPropertyAdapter
s。这些适配器创建JavaFX可观察属性,包装常规JavaBean属性。所以如果你有一个bean类
@Entity
public class Person {
private String firstName ;
private String lastName ;
@Id
private Integer id ;
public String getFirstName() {
return firstName ;
}
public void setFirstName(String firstName) {
this.firstName = firstName ;
}
public String getLastName() {
return lastName ;
}
public void setLastName(String lastName) {
this.lastName = lastName ;
}
}
然后你可以做一些类似的事情
TableColumn<Person, String> firstNameCol = new TableColumn<>("First Name");
firstNameCol.setCellValueFactory(cellData -> {
try {
return JavaBeanStringPropertyBuilder.create()
.bean(cellData.getValue())
.name("firstName")
.build();
} catch (NoSuchMethodException exc) {
throw new RuntimeException(exc);
}
});
public class Person {
private String firstName ;
private String lastName ;
private PropertyChangeSupport pcs ;
public Person() {
pcs = = new PropertyChangeSupport(this);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
pcs.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
pcs.removePropertyChangeListener(listener);
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
String oldName = this.firstName ;
this.firstName = firstName;
pcs.firePropertyChange("firstName", oldName, this.firstName);
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
String oldName = this.lastName ;
this.lastName = lastName;
pcs.firePropertyChange("lastName", oldName, this.lastName);
}
}
我目前的项目是用JavaFX完成的。我使用属性将(双向)视图字段绑定到bean(使用JFXtras的BeanPathAdapter)。 我选择用JPA和ObjectDB作为模型。 这是我第一次在独立的项目中使用JPA,这里我面临的是托管实体的问题。 实际上,我将托管实体绑定到视图字段,当视图字段的值更改时,实体会更新...和数据库也是如此。 我正在尝试找到一种手动保存/合并实体的方法,以便我可以询
谁能告诉我,如何创建一个没有主键的实体? 谢了。
关于以下摘录,关于CQR和ddd,摘自Nick Tune,Scott Millett的领域驱动设计的模式、原则和实践 这是否意味着命令端的域模型可以省略大部分业务属性?对于例如客户实体,它会是什么样子? 客户实体能否省略名字、姓氏等?如果是这样,这些业务属性会在哪里?仅在CustomerEntity的读取模式中? 或者,除了包含所有业务属性的CustomerEntity之外,可能还会有Custom
在ORM映射类上定义具有“混合”行为的属性。 “混合”是指属性在类级别和实例级别定义了不同的行为。 这个 hybrid 扩展提供了一种特殊形式的方法修饰器,大约有50行代码,几乎不依赖于其他的sqlacalchemy。理论上,它可以与任何基于描述符的表达式系统一起工作。 考虑映射 Interval ,表示整数 start 和 end 价值观。我们可以在生成类级SQL表达式的映射类上定义更高级别的函
在我们的项目中,我们有一个实体类,类似如下: 现在,我们希望使用Spring Data JPA来查找具有特定的所有员工,因此我们的EmployeeRepository如下所示:
问题内容: 我有一个具有以下结构的数据库: 当我尝试创建EntityProperty类时 我得到以下异常: 我知道JPA实体必须具有主键,但是由于无法控制的原因,我无法更改数据库架构。是否可以创建将与这样的数据库模式一起工作的JPA(hibernate)实体? 问题答案: 我猜您有一个组合键,其中的外键是。如果是这样,则可以按如下所示进行映射: