简体   繁体   English

通过映射的持久属性的反射访问字段时出错

[英]Error accessing field by reflection for persistent property with mappings

I have set up my Database with one one to many relationship and after trying to register user(save it to database) I get whitelabe error page with我已经使用一对多关系设置了我的数据库,并且在尝试注册用户(将其保存到数据库)之后,我得到了 whitelabe 错误页面

"Error accessing field [private java.lang.Integer com.m2.cfg.domain.Fakultet.id] by reflection for persistent property" “通过持久属性的反射访问字段 [私有 java.lang.Integer com.m2.cfg.domain.Fakultet.id] 时出错”

error错误
One to many relationship is next: One Fakultet(University) can have multiple users接下来是一对多关系:一个 Fakultet(University) 可以有多个用户
Fakultet (University) class Fakultet(大学)class

@Entity
@Table(name = "fakulteti")
public class Fakultet {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    @Column(name = "naziv")
    private String naziv;

    public Fakultet(){};

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNaziv() {
        return naziv;
    }

    public void setNaziv(String naziv) {
        this.naziv = naziv;
    }
}

Users class:用户 class:

@Entity
@Table(name = "users")
public class Users {
    @Id
    @Column
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id = 0;
    @Column(name = "username")
    private String username;
    @Column(name="email")
    private String email;
    @Column(name="password")
    private String password;
    @Column(name = "enabled")
    private boolean enabled = true;
    @ManyToOne(fetch = FetchType.LAZY, targetEntity = Fakultet.class)
    @JoinColumn(name="id_fakulteta", referencedColumnName = "id")
    private Integer idFakulteta;

    public Users(){};

    public Users(String username, String email, String password, Integer idFakulteta) {
        this.username = username;
        this.email = email;
        this.password = password;
        this.idFakulteta = idFakulteta;
    }

    ..getters and setters
}

Sql script: Sql 脚本:

DROP TABLE IF EXISTS employee;
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS authorities;
DROP TABLE IF EXISTS kolegiji;

CREATE TABLE employee (
      empId VARCHAR(10) NOT NULL,
      empName VARCHAR(100) NOT NULL
);

create table users (
       id INT AUTO_INCREMENT PRIMARY KEY,
       username varchar(255) not null ,
       email varchar(255),
       password varchar(255) not null,
       id_fakulteta int,
       enabled boolean
);

CREATE TABLE IF NOT EXISTS fakulteti (
     naziv VARCHAR(255) NULL,
     id INT NOT NULL,
     PRIMARY KEY (id),
     CONSTRAINT fk_fakulteti_users1
         FOREIGN KEY (id)
             REFERENCES users (id_fakulteta)
             ON DELETE NO ACTION
             ON UPDATE NO ACTION
);

create table authorities (
         username varchar(50) not null,
         authority varchar(50) not null,
         foreign key (username) references users (username)
);

CREATE TABLE kolegiji (
      id int NOT NULL AUTO_INCREMENT,
      naziv varchar(255) DEFAULT NULL,
      PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS teme (
     idteme INT NOT NULL AUTO_INCREMENT,
     naslov VARCHAR(255) NOT NULL,
     datumKreiranja DATE NOT NULL,
     kolegijId INT NULL,
     PRIMARY KEY (idteme),
     CONSTRAINT fk_teme_kolegiji1
         FOREIGN KEY (kolegijId)
             REFERENCES kolegiji (id)
             ON DELETE NO ACTION
             ON UPDATE NO ACTION
);
create INDEX fk_teme_kolegiji1_idx on teme(kolegijId ASC);

CREATE TABLE IF NOT EXISTS komentari (
      id INT NOT NULL AUTO_INCREMENT,
      idTeme INT NOT NULL,
      PRIMARY KEY (id),

      CONSTRAINT fk_komentari_teme
          FOREIGN KEY (idTeme)
              REFERENCES teme (idteme)
              ON DELETE NO ACTION
              ON UPDATE NO ACTION
);
create INDEX fk_komentari_teme_idx on komentari(idTeme ASC);


CREATE TABLE IF NOT EXISTS kolegiji_has_fakulteti(
   kolegiji_id INT NOT NULL,
   fakulteti_id INT NOT NULL,
   PRIMARY KEY (kolegiji_id, fakulteti_id),
   CONSTRAINT fk_kolegiji_has_fakulteti_kolegiji1
       FOREIGN KEY (kolegiji_id)
           REFERENCES kolegiji (id)
           ON DELETE NO ACTION
           ON UPDATE NO ACTION,
   CONSTRAINT fk_kolegiji_has_fakulteti_fakulteti1
       FOREIGN KEY (fakulteti_id)
           REFERENCES fakulteti (id)
           ON DELETE NO ACTION
           ON UPDATE NO ACTION
);
create INDEX fk_kolegiji_has_fakulteti_fakulteti1_idx on kolegiji_has_fakulteti(fakulteti_id ASC);
create INDEX fk_kolegiji_has_fakulteti_kolegiji1_idx on kolegiji_has_fakulteti(kolegiji_id ASC);


insert into users(username, password, enabled, id_fakulteta, email)
    values('javainuse', 'javainuse',true, 1,'nekimail@gmail.com');
insert into authorities(username,authority)values('javainuse','ROLE_ADMIN');

insert into fakulteti(naziv, id) values('TVZ', 1);

The mistake I made was in this line我犯的错误在这一行

    @ManyToOne(fetch = FetchType.LAZY, targetEntity = Fakultet.class)
    @JoinColumn(name="id_fakulteta", referencedColumnName = "id")
    private Integer idFakulteta;

When Joining Columns you must create object that you want to join and the line needs to look like this加入列时,您必须创建要加入的 object,并且该行需要如下所示

    @ManyToOne(fetch = FetchType.LAZY, targetEntity = Fakultet.class, cascade=CascadeType.ALL)
    @JoinColumn(name="id_fakulteta", nullable = false)
    private Fakultet faks;

also I needed to delete我也需要删除

Integer idFakulteta Integer idFakulteta

field to avoid mapping same column twice error字段以避免映射同一列两次错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Hibernate 5 PropertyAccessException:通过持久属性的反射访问字段时出错 - Hibernate 5 PropertyAccessException: Error accessing field by reflection for persistent property JpaSystemException:通过持久属性 [XXXXXX] 的反射访问字段 [XXXXXX] 时出错:1 - JpaSystemException: Error accessing field [XXXXXX] by reflection for persistent property [XXXXXX] : 1 通过反射访问具有根本原因的持久属性的字段时出错 - Error accessing field by reflection for persistent property with root cause JPA spring boot,通过持久属性的反射访问字段XXXX时出错 - JPA spring boot, Error accessing field XXXX by reflection for persistent property 错误查找 object Spring JPA:“通过反射访问持久属性的字段时出错” - Error find object Spring JPA: “Error accessing field by reflection for persistent property” Hibernate:通过持久属性的反射访问字段 [private java.lang.Integer] 时出错 - Hibernate: Error accessing field [private java.lang.Integer ] by reflection for persistent property 通过 @EmbeddedID 上的持久属性 [model.Credentials#email] 的反射访问字段时出错 - Error accessing field by reflection for persistent property [model.Credentials#email] on @EmbeddedID org.springframework.orm.jpa.JpaSystemException:通过持久属性的反射访问字段时出错 - org.springframework.orm.jpa.JpaSystemException: Error accessing field by reflection for persistent property 将事务添加到数据库的问题:通过反射持久属性 [main.Emails#id] 访问字段 [private long main.Emails.id] 时出错 - Problem with add transaction to database: Error accessing field [private long main.Emails.id] by reflection for persistent property [main.Emails#id] Hibernate 错误访问字段 [private java.lang.String com.example.demo.Student.firstName] 反射持久属性 - Hibernate Error accessing field [private java.lang.String com.example.demo.Student.firstName] by reflection for persistent property
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM