Я использую Hibernate и Java для реализации базы данных.
Я создал следующие две аннотации:
@Entity public class Cargo implements Serializable{
@Id
@GeneratedValue
private Long id;
private String cargo;
@OneToOne(mappedBy="cargo")
private Funcionario funcionario;
}
и
@Entity public class Funcionario implements Serializable{
@Id @GeneratedValue private Long id;
private String nome;
private String sexo;
private String telefone;
@OneToOne
private Cargo cargo;
}
Затем я пытаюсь вставить данные со следующим кодом:
EntityManagerFactory factory = Persistence.createEntityManagerFactory("BD04PU");
EntityManager manager = factory.createEntityManager();
manager.getTransaction().begin();
Cargo novoCargo = new Cargo();
Funcionario novoFuncionario = new Funcionario();
Scanner entrada = new Scanner(System.in);
System.out.print("\nCargo: ");
novoCargo.setCargo(entrada.nextLine());
manager.persist(novoCargo);
System.out.print("\nNome: ");
novoFuncionario.setNome(entrada.nextLine());
System.out.print("\nSexo: ");
novoFuncionario.setSexo(entrada.nextLine());
System.out.print("\nTelefone: ");
novoFuncionario.setTelefone(entrada.nextLine());
novoFuncionario.setCargo(novoCargo);
manager.persist(novoFuncionario);
manager.getTransaction().commit();
factory.close();
, но в результате внешние ключи Car go и Funcionario считаются следующим образом: Car go начинается с 1, тогда как Funcionario начинается с 2 , тогда первичный ключ Car go становится 3, а первичный ключ Funcionario становится 4.
Как будто оба первичных ключа были одинаковыми.
Почему это так? Как это исправить?
Выше идентификатор Car go должен использоваться в качестве внешнего ключа в таблице Funcionario.