Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用另一个表中的外键休眠映射主键_Java_Hibernate_Jsf_Jakarta Ee - Fatal编程技术网

Java 使用另一个表中的外键休眠映射主键

Java 使用另一个表中的外键休眠映射主键,java,hibernate,jsf,jakarta-ee,Java,Hibernate,Jsf,Jakarta Ee,我在创建一个表的映射时遇到以下问题,其中它的主键是另一个表的外键 表TPESSOA数据库MySql CREATE TABLE `tpessoa` ( `codigoPessoa` bigint(20) NOT NULL AUTO_INCREMENT, `nome` varchar(200) NOT NULL, `cpfcnj` varchar(14) NOT NULL, `tipoPessoa` varchar(10) NOT NULL, `dataNascimento` d

我在创建一个表的映射时遇到以下问题,其中它的主键是另一个表的外键

表TPESSOA数据库MySql

CREATE TABLE `tpessoa` (
  `codigoPessoa` bigint(20) NOT NULL AUTO_INCREMENT,
  `nome` varchar(200) NOT NULL,
  `cpfcnj` varchar(14) NOT NULL,
  `tipoPessoa` varchar(10) NOT NULL,
  `dataNascimento` date NOT NULL,
  PRIMARY KEY (`codigoPessoa`),
  UNIQUE KEY `codigoPessoa` (`codigoPessoa`)
 ENGINE=InnoDB DEFAULT CHARSET=utf8
)
CREATE TABLE `tusuario` (
  `codigoPessoa` bigint(20) NOT NULL,
  `login` varchar(50) NOT NULL,
  `senha` varchar(90) NOT NULL,
  `dataCadastro` date NOT NULL,
  `ativo` tinyint(1) NOT NULL,
  PRIMARY KEY (`codigoPessoa`),
  UNIQUE KEY `codigoPessoa` (`codigoPessoa`),
  CONSTRAINT `tusuario_ibfk_1` FOREIGN KEY (`codigoPessoa`) REFERENCES `tpessoa` (`codigoPessoa`)
 ENGINE=InnoDB DEFAULT CHARSET=utf8
)
表TUSUARIO数据库MySql

CREATE TABLE `tpessoa` (
  `codigoPessoa` bigint(20) NOT NULL AUTO_INCREMENT,
  `nome` varchar(200) NOT NULL,
  `cpfcnj` varchar(14) NOT NULL,
  `tipoPessoa` varchar(10) NOT NULL,
  `dataNascimento` date NOT NULL,
  PRIMARY KEY (`codigoPessoa`),
  UNIQUE KEY `codigoPessoa` (`codigoPessoa`)
 ENGINE=InnoDB DEFAULT CHARSET=utf8
)
CREATE TABLE `tusuario` (
  `codigoPessoa` bigint(20) NOT NULL,
  `login` varchar(50) NOT NULL,
  `senha` varchar(90) NOT NULL,
  `dataCadastro` date NOT NULL,
  `ativo` tinyint(1) NOT NULL,
  PRIMARY KEY (`codigoPessoa`),
  UNIQUE KEY `codigoPessoa` (`codigoPessoa`),
  CONSTRAINT `tusuario_ibfk_1` FOREIGN KEY (`codigoPessoa`) REFERENCES `tpessoa` (`codigoPessoa`)
 ENGINE=InnoDB DEFAULT CHARSET=utf8
)
类Pessoa

@Entity
@Table(name="TPESSOA")
public class Pessoa implements Serializable {

    private static final long serialVersionUID = 9187948214955817194L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long codigoPessoa;
    @NotBlank(message="Campo Nome não pode ser vazio!")
    private String nome;
    @NotBlank(message="Campo Cpf/Cnpj não pode ser vazio!")
    private String cpfCnpj;
    @NotBlank(message="Campo Tipo Pessoa não pode ser vazio!")
    private TipoPessoa tipoPessoa;
    @NotBlank(message="Campo Data Nascimento não pode ser vazio!")
    private Date dataNascimento;
普通班

@Entity
@Table(name="TUSUARIO")
public class Usuario {

    @Id
    @OneToOne()
    @JoinColumn(name="codigoPessoa", referencedColumnName="codigoPessoa")
    private Pessoa pessoa;
    @NotBlank(message="Campo Nome não pode ser vazio!")
    private String nome;
    @NotBlank(message="Campo Login não pode ser vazio!")
    private String login;
    private String senha;
    private Date dataCadastro;
    private Boolean ativo;
    @NotNull(message="Campo Grupo não pode ser vaszio!")
    @ManyToMany
    @JoinTable(name = "TUSUARIOGRUPO", joinColumns = @JoinColumn(name = "codusr")
                , inverseJoinColumns = @JoinColumn(name = "codgrp"))    
    private List<Grupo> grupos;

尝试从
Usuario
类中删除
referencedColumnName
属性。谢谢Omar。就是这样。由于类中的其他映射,我经常继续此错误。不客气。如果是不同的错误,请在新问题中发布。