Vaadin 7.0.1 带有 JPAContainer 和 FieldGroup 的组合框

2024-04-26

(抱歉,如果这是一个新问题)

我有两个 JPAContainer,一个用于 Employee 类/表,一个用于语言类/表。员工可以选择一种语言。

我正在尝试创建一个员工编辑表单,其中包含用于语言选择的组合框和用于处理绑定和创建的 FieldGroup。

我可以通过 JPAContainer 获取下拉列表以包含语言表中的条目,但它不会显示员工记录中已有的值。我究竟做错了什么?

//Key parts of code....

private JPAContainer<Employee> employees;
private JPAContainer<Language> languages;

FormLayout formLayout = new FormLayout();

formFieldGroup = new FieldGroup(employeeItem);

Field<?> firstName = formFieldGroup.buildAndBind("First name", "firstName");
Field<?> lastName = formFieldGroup.buildAndBind("Last name", "lastName");
Field<?> userName = formFieldGroup.buildAndBind("Username", "userName");
Field<?> fullName = formFieldGroup.buildAndBind("Full name", "fullName");
Field<?> initials = formFieldGroup.buildAndBind("Initials", "initials");

ComboBox language = new ComboBox("Language",languages);
language.setContainerDataSource(languages);
language.setItemCaptionPropertyId("languageName");
language.setFilteringMode(FilteringMode.CONTAINS);
language.setImmediate(true);

formFieldGroup.bind(language, "language");

firstName.addValidator(new BeanValidator(Employee.class, "firstName"));
lastName.addValidator(new BeanValidator(Employee.class, "lastName"));
firstName.addValidator(new BeanValidator(Employee.class, "userName"));
lastName.addValidator(new BeanValidator(Employee.class, "fullName"));
lastName.addValidator(new BeanValidator(Employee.class, "initials"));

formLayout.addComponent(userName);
formLayout.addComponent(fullName);
formLayout.addComponent(firstName);
formLayout.addComponent(lastName);
formLayout.addComponent(initials);
formLayout.addComponent(language);

 // A few details of the domain classes
@Entity
@Table(name="Employees")
public class Employee   extends BaseEntity
{
private static final long   serialVersionUID    = 1L;

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="EmployeeID")
private Integer     employeeID;

    ...

@ManyToOne 
@JoinColumn(name="LanguageID",updatable=false)
private Language    language;
    ...}

@Entity
@Table(name="Languages")
public class Language  extends BaseEntity
{

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="LanguageID")
private Integer languageID;

@Column(name="LangaugeName")
private String  languageName;

    ... }

我通过 Vaadin 论坛收到了以下回答此问题的回复(感谢 Jonatan Kronqvist)。

嗨迈克尔,

JPAContainer项ID与数据库中的ID相同,即 意味着在选择/组合框中使用 JPAContainer 会导致该值 选择的 ID 是数据库中行的 ID,而不是 POJO 本身,正如您的 Employee 实体 POJO 所期望的那样。添加一个 SingleSelectConverter 到您的组合框应该可以解决您的问题:

language.setConverter(new SingleSelectConverter(language));

...

HTH,/乔纳坦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vaadin 7.0.1 带有 JPAContainer 和 FieldGroup 的组合框 的相关文章

随机推荐

  • 将 sys.stdout 重定向到 python 日志记录

    所以现在我们有很多 python 脚本 我们正在尝试整合它们并修复和冗余 我们正在尝试做的事情之一是确保所有 sys stdout sys stderr 都进入 python 日志记录模块 现在最重要的是 我们希望打印出以下内容
  • 如何在Python中像ERB一样进行模板化? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 ERB http ruby doc org stdlib 2 3 0 libdoc erb rdoc E
  • 阻塞事件循环

    我正在通过 Nodeschool 参加 函数式 Javascript 研讨会 其中一项练习的标题是 阻止事件循环 我很难理解它 通过过去的练习 我确保真正尝试理解解决方案 这样如果我必须重做问题 我就会理解如何解决它 而不是第一次就破解它
  • 以编程方式从 iPhone 拨打 USSD 代码 [重复]

    这个问题在这里已经有答案了 如何拨号USSD以编程方式为iPhone编写代码 我搜索发现iOS 7已经阻止使用USSD出于安全原因 我们可以手动拨打 USSD 代码 但在低于 iOS 7 的 iPhone 中 我们可以手动拨打 USSD 代
  • 使用 Node 和 Heroku 进行负载平衡

    我有一个 Web 应用程序 它接受来自 ios 应用程序的 api 请求 我的网络应用程序托管在 Heroku 上 使用他们的免费 dyno 每个请求能够处理 512 mb 的数据 因为 Node 是一个单线程应用程序 一旦我们开始从 io
  • 升级到 java 8 后无法使用 crashlytics 发布项目

    当我搬到java 8 我在应用程序发布中收到此错误 因为fabric崩溃解决方案 Could not determine the dependencies of task app crashlyticsStoreDeobsRelease g
  • NumPy 追加与 Python 追加

    在 Python 中 我可以附加到一个空数组 例如 gt gt gt a gt gt gt a append 1 2 3 gt gt gt a append 1 2 3 gt gt gt a 1 2 3 1 2 3 我怎样才能在 NumPy
  • Git http - 安全地记住凭据

    通过 HTTP S 连接到远程存储库时 有没有办法安全地让 git 记住我的凭据 我已经尝试过core askpass方法详述于git config http git scm com docs git config让外部脚本提供我的凭据 尽
  • R 中基因列表(使用 ENTREZID)的基因本体 (GO) 分析?

    我对 GO 分析非常陌生 我有点困惑如何对我的基因列表进行分析 我有一个基因列表 n 10 gene list SYMBOL ENTREZID GENENAME 1 AFAP1 60312 actin filament associated
  • Makefiles:从一个目录获取.cpp,并将编译后的.o放在另一个目录中

    我正在开发适用于移动设备 Windows Mobile 6 和 Android 的跨平台 2D 引擎 我的 Windows 版本已基本准备就绪 但我仍需要确保 Android 上也提供相同的功能 我想要的是一个Makefile在项目的根目录
  • 外部化各种 React 组件中的通用函数

    在不同的components在样式或其他方面我使用相同的功能 其中一些函数使用this setState 我想将所有这些函数收集在一个公共位置 因此在重写它们时 我不必在所有组件中重写它们 而只需在一个文件中重写它们 但是 我不知道如何写t
  • Unicode字符串的跨平台迭代(使用ICU计算字素)

    我想迭代每个字符一个 Unicode 字符串 处理每个代理对并将字符序列组合为一个单元 一个字素 Example 文本 由代码点组成 U 0928 U 092E U 0938 U 094D U 0924 U 0947 其中 U 0938 a
  • 如何更改反应导航中的后退按钮路线

    我正在使用反应导航 堆栈导航 我想更改我的标题后退按钮图标路线 Home 订票 我的预订 这些是我项目中的屏幕 现在 当我单击 MyBookings 屏幕中的标题后退按钮时 它应该路由到主屏幕 如果您的 stackNavigator 堆栈配
  • Git 术语:tip 和 HEAD 之间的区别?

    和Git有什么区别HEAD and tip 抱歉 如果在其他地方有人问过这个问题 没有看到任何其他关于此的问题 From 吉特词汇表 https git scm com docs gitglossary html 可能通过git help
  • 使用opencv在灰度图像中绘制彩色矩形

    是否可以使用opencv在灰度图像中绘制彩色矩形 我尝试了几种方法 但整个图像要么变成灰度 要么变成 RGB 您不能获得混合的灰色和彩色图像 你可以看看有没有办法在同一图像opencv C 上同时拥有灰度和RGB像素 https stack
  • 如何为幻灯片中的每个图像添加链接?

    我使用了 为什么这张幻灯片闪烁 中的代码 彼得在网站上给出了您的答案之一 它工作得很好 没有任何闪烁 但我的问题是如何为每个图像添加超链接 我把代码贴出来供大家参考 Script function Edit these Assumes yo
  • jQuery $(window).resize() 在减小窗口高度时不起作用

    我有一个 id 为 main 的 div 我想使用 jQuery 设置它的高度并使其在window resize它的高度是使用函数修改的 但由于某种原因 它仅在增加窗口高度时才能正常工作 而在减小窗口高度时则不起作用 这是JS functi
  • 设置 sendBufferSize() 后,UDP 套接字的消息太长

    我正在尝试发送 UDP 数据报 包含协议缓冲区消息 并收到消息太长的异常 java io IOException Message too long at java net PlainDatagramSocketImpl send Nativ
  • Angular 动态表上的 Jquery 表排序器

    我有一个表 需要使用 Jquery Tablesorter 插件进行排序等 它对于静态表工作得很好 但是当我尝试在 Angular 支持的表上使用时 它不起作用 有谁知道为什么会这样 http plnkr co edit SUjs1h7pr
  • Vaadin 7.0.1 带有 JPAContainer 和 FieldGroup 的组合框

    抱歉 如果这是一个新问题 我有两个 JPAContainer 一个用于 Employee 类 表 一个用于语言类 表 员工可以选择一种语言 我正在尝试创建一个员工编辑表单 其中包含用于语言选择的组合框和用于处理绑定和创建的 FieldGro