Durante minhas pesquisas para resolver o problema com chave estrangeira, descobri uma forma de popular um ChoiceBox com o valor de mais de um campo e com outras informações.
Supondo uma tabela com os campos:
CID_COD: Primary Key;
CID_NOME: Nome da cidade;
CID_UF: UF do estado;
Tendo a tabela as seguintes informações
COD CID_NOME CID_UF
1 Matelândia PR
2 Medianeira PR
Considerando um jdbcDatasource (jdbcDsCidade) devidamente ligado a essa tabela do banco:
pode ser feito da seguinte forma:
O ChoiceBox será populado da seguinte forma:
1 - Matelandia PR
2 - Medianeira PR
Bom, com isso, penso que seja possível desenvolver uma função para pegar os valores numéricos ou então tudo que esteja antes do " - " para gravar na base de dados em um caso em que o o campo CID_COD é chave estrangeira.
Cordialmente;
Fonte: http://www.drdobbs.com/java/225700076
Sim,
supondo que “2 - Medianeira PR” seja a sua String, você pode fazer isso e vai pegar só o número 2:
suaString.split("\\-")[0].trim();
Agora, só uma sugestão: Eu particularmente não conheço esses objetos do Composer, mas não seria legal você trazer os valores do banco de dados, modelar em objetos e trabalhar no objetos JavaFX?
Seu código ficaria bem mais limpo e fácil de manter 
[]'s
Pode ser que sim. Mas eu não faço idéia e como fazer isso.
Estou apredendo JavaFx sem entender muito de Java.
Estou lendo o que encontra na net e tentando colocar em prática para desenvolver uma aplicação CRUD em JavaFx.
Se você puder me postar um link sobre o tema, eu agradeço.
Cordialmente;
Para completar, lim um artigo em javafree.uol.com.br (acho que é seu) sobre criar uma lista de carros em javaFx. Fiz aqui e blz. Tentei fazer o mesmo processo para conexão com a base mas me perdi pelo meio. 
Seria isso a questão da modelagem que você fala?
Cordialmente;
Fala Claupers,
Aquele artigo do JavaFree foi para começar uma séries falando de objetos Java X Objetos JavaFX, mas depois percebi que o pessoal do JFXtras está trabalhando em uma solução de sincronismo de objetos Java e a UserInterface e resolvi parar.
A idéia é trazer os elementos do banco de dados, modelar em objetos JavaFX, por exemplo:
(mais ou menos como seria em seu caso)
public class Cidade{
public var cod:Integer;
public var nome:String;
public var UF:String;
}
Depois você faz a sua consulta e coloca em uma sequence de Cidades:
var cidades:Cidade[] =
for(record in jdbcDsCidade.getRecordSet().all())
Cidade{
cod: record.get("CID_COD")
nome: record.get("CID_NOME")
UF: record.get("CID_UF")
}
Então você trabalharia nessa sequence de cidades.
No entanto, acho que isso seria mais uma opinião pessoal, JavaFX é voltado para GUI, não acredito que no JavaFX Composer eles iriam fazer algo que comprometesse a performance.
Obrigado Jesuino. Agora entendi um pouco mais sobre o assunto.
Cordialmente;