Java 为什么我会得到这样的警告信息:恢复OneToOne或manytone属性的惰性设置?

Java 为什么我会得到这样的警告信息:恢复OneToOne或manytone属性的惰性设置?,java,jpa,Java,Jpa,大家好, 祝你今天愉快。在我的maven项目中,我使用JPA进行后端通信和eclipse链接。但是当我试图在我的模型组件上执行延迟加载时,我得到了上面的警告信息。我已经在pom.xml中添加了插件,在persistent.xml中也添加了插件,但是我仍然无法解决我的问题。请任何人帮帮我。下面是我的实体类 java package com.model; import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fas

大家好,

祝你今天愉快。在我的maven项目中,我使用JPA进行后端通信和eclipse链接。但是当我试图在我的模型组件上执行延迟加载时,我得到了上面的警告信息。我已经在pom.xml中添加了插件,在persistent.xml中也添加了插件,但是我仍然无法解决我的问题。请任何人帮帮我。下面是我的实体类

java

package com.model;

import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;


@Entity
@Table(name = "GDU")
@NamedQueries({
@NamedQuery(name = "Gdu.findAll", query = "SELECT g FROM Gdu g"),
@NamedQuery(name = "Gdu.findByGduId", query = "SELECT g FROM Gdu g WHERE g.gduId = :gduId"),
@NamedQuery(name = "Gdu.findByName", query = "SELECT g FROM Gdu g WHERE g.name = :name"),
@NamedQuery(name = "Gdu.findByHttpPort", query = "SELECT g FROM Gdu g WHERE g.httpPort = :httpPort"),
@NamedQuery(name = "Gdu.findByModbusPort", query = "SELECT g FROM Gdu g WHERE g.modbusPort = :modbusPort")})
@SequenceGenerator(name="SEQ5", sequenceName="gduSeq", allocationSize=1)
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@gduId")




 public class Gdu implements Serializable {
        private static final long serialVersionUID = 1L;
        // @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
        @Id
        @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ5")
        @Basic(optional = false)
        @NotNull
        @Column(name = "GDU_ID")
        private BigDecimal gduId;
        @Size(max = 10)
        @Column(name = "NAME")
        private String name;
        @Basic(optional = false)
        @NotNull
        @Column(name = "HTTP_PORT")
        private BigInteger httpPort;
        @Basic(optional = false)
        @NotNull
        @Column(name = "MODBUS_PORT")
        private BigInteger modbusPort;
        @JoinColumn(name = "PLANT_ID", referencedColumnName = "PLANT_ID")
        @ManyToOne(optional = false, fetch = FetchType.LAZY)
        private Plant plantId;
        @OneToMany(mappedBy = "gduId", fetch = FetchType.LAZY)
        private Collection<Inverter> inverterCollection;
        @JoinColumn(name = "GDUTYPE_ID", referencedColumnName = "GDUTYPE_ID")
        @ManyToOne(optional = false,fetch = FetchType.LAZY)
        private Gdutype gdutypeId;

        public Gdu() {
        }

        public Gdu(BigDecimal gduId) {
        this.gduId = gduId;
        }

        public Gdu(BigDecimal gduId, BigInteger httpPort, BigInteger modbusPort) {
        this.gduId = gduId;
        this.httpPort = httpPort;
        this.modbusPort = modbusPort;
        }

        //override equals and hashcode and setters and getters are here
        } 
请帮帮我。提前谢谢

Here is Inverter and Plant and GduType. Please have a look

package com.model;
//imports are here
@Entity
@Table(name = "GDUTYPE")
@NamedQueries({
    @NamedQuery(name = "Gdutype.findAll", query = "SELECT g FROM Gdutype g"),
    @NamedQuery(name = "Gdutype.findByGdutypeId", query = "SELECT g FROM Gdutype g WHERE g.gdutypeId = :gdutypeId"),
    @NamedQuery(name = "Gdutype.findByProductName", query = "SELECT g FROM Gdutype g WHERE g.productName = :productName"),
    @NamedQuery(name = "Gdutype.findByApiName", query = "SELECT g FROM Gdutype g WHERE g.apiName = :apiName"),
    @NamedQuery(name = "Gdutype.findByApiVersion", query = "SELECT g FROM Gdutype g WHERE g.apiVersion = :apiVersion")})
public class Gdutype implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "GDUTYPE_ID")
    private BigDecimal gdutypeId;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 10)
    @Column(name = "PRODUCT_NAME")
    private String productName;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 10)
    @Column(name = "API_NAME")
    private String apiName;
    @Size(max = 5)
    @Column(name = "API_VERSION")
    private String apiVersion;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "gdutypeId",fetch = FetchType.LAZY)
    private Collection<Gdu> gduCollection;

    public Gdutype() {
    }

    public Gdutype(BigDecimal gdutypeId) {
        this.gdutypeId = gdutypeId;
    }
    public Gdutype(BigDecimal gdutypeId, String productName, String apiName) {
        this.gdutypeId = gdutypeId;
        this.productName = productName;
        this.apiName = apiName;
    }
    //setters and getters ,hashcode,equals
}


package com.model;
@Entity
@Table(name = "INVERTER")
@NamedQueries({
    @NamedQuery(name = "Inverter.findAll", query = "SELECT i FROM Inverter i"),
    @NamedQuery(name = "Inverter.findByInverterId", query = "SELECT i FROM Inverter i WHERE i.inverterId = :inverterId"),
    @NamedQuery(name = "Inverter.findByName", query = "SELECT i FROM Inverter i WHERE i.name = :name"),
    @NamedQuery(name = "Plant.findByNominalPower", query = "SELECT p FROM Plant p WHERE p.nominalPower = :nominalPower")})
@SequenceGenerator(name="SEQ4", sequenceName="inverterSeq", allocationSize=1)
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@inverterId")
public class Inverter implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ4")    
    @Basic(optional = false)
    @NotNull
    @Column(name = "INVERTER_ID")
    private BigDecimal inverterId;
    @Size(max = 45)
    @Column(name = "NAME")
    private String name;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NOMINAL_POWER")
    private double nominalPower;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "inverterId", fetch = FetchType.LAZY)
    private Collection<Mppt> mpptCollection;
    @JoinColumn(name = "PLANT_ID", referencedColumnName = "PLANT_ID")
    @ManyToOne(optional = false, , fetch = FetchType.LAZY)
    private Plant plantId;
    @JoinColumn(name = "PCI_ID", referencedColumnName = "PCI_ID")
    @ManyToOne(" fetch = FetchType.LAZY)
    private Pci pciId;
    @JoinColumn(name = "INVERTERTYPE_ID", referencedColumnName = "IT_ID")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Invertertype invertertypeId;
    @JoinColumn(name = "GDU_ID", referencedColumnName = "GDU_ID")
    @ManyToOne(fetch = FetchType.LAZY)
    private Gdu gduId;
    public Inverter() {  }
}


package com.model;
@Entity
@Table(name = "PLANT")
@NamedQueries({
    @NamedQuery(name = "Plant.findAll", query = "SELECT p FROM Plant p"),
    @NamedQuery(name = "Plant.findByPlantId", query = "SELECT p FROM Plant p WHERE p.plantId = :plantId"),
    @NamedQuery(name = "Plant.findByName", query = "SELECT p FROM Plant p WHERE p.name = :name"),
    @NamedQuery(name = "Plant.findByOperator", query = "SELECT p FROM Plant p WHERE p.operator = :operator"),
    @NamedQuery(name = "Plant.findByCommissioning", query = "SELECT p FROM Plant p WHERE p.commissioning = :commissioning"),
    @NamedQuery(name = "Plant.findByNominalPower", query = "SELECT p FROM Plant p WHERE p.nominalPower = :nominalPower"),
    @NamedQuery(name = "Plant.findByContador", query = "SELECT p FROM Plant p WHERE p.contador = :contador")})
@SequenceGenerator(name="SEQ2", sequenceName="plantSeq", allocationSize=1)
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@plantId")
public class Plant implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ2")
    @Basic(optional = false)
    @NotNull
    @Column(name = "PLANT_ID")
    private BigDecimal plantId;
    @Size(max = 45)
    @Column(name = "NAME")
    private String name;
    @Size(max = 30)
    @Column(name = "OPERATOR")
    private String operator;
    @Column(name = "COMMISSIONING")
    @Temporal(TemporalType.TIMESTAMP)
    private Date commissioning;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NOMINAL_POWER")
    private double nominalPower;
    @Column(name = "CONTADOR")
    private BigInteger contador;
    @Column(name = "LONGITUDE")
    private BigDecimal longitude;
    @Column(name = "LATITUDE")
    private BigDecimal latitude;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "plantId", fetch = FetchType.LAZY)
    private Collection<Sensor> sensorCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "plant", fetch = FetchType.LAZY)
    private Collection<Userplant> userplantCollection;
    @JoinColumn(name = "REPORT_ID", referencedColumnName = "REPORT_ID")
    @ManyToOne( fetch = FetchType.LAZY)
    private Report reportId;
    @JoinColumn(name = "INSTALLATION_ID", referencedColumnName = "INSTALLATION_ID")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Installation installationId;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "plantId", fetch = FetchType.LAZY)
    private Collection<Gdu> gduCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "plantId", fetch = FetchType.LAZY)
    private Collection<Inverter> inverterCollection;

    public Plant() {
    }

    public Plant(BigDecimal plantId) {
        this.plantId = plantId;
    }

    public Plant(BigDecimal plantId, double nominalPower) {
        this.plantId = plantId;
        this.nominalPower = nominalPower;
    }
}
这里是变频器、工厂和GduType。请看一看
包com.model;
//这里有进口货
@实体
@表(name=“GDUTYPE”)
@命名查询({
@NamedQuery(name=“Gdutype.findAll”,query=“从Gdutype g中选择g”),
@NamedQuery(name=“Gdutype.findByGdutypeId”,query=“从Gdutype g中选择g,其中g.gdutypeId=:gdutypeId”),
@NamedQuery(name=“Gdutype.findByProductName”,query=“从Gdutype g中选择g,其中g.productName=:productName”),
@NamedQuery(name=“Gdutype.findByApiName”,query=“从Gdutype g中选择g,其中g.apiName=:apiName”),
@NamedQuery(name=“Gdutype.findByApiVersion”,query=“从Gdutype g中选择g,其中g.apivision=:apivision”)}
公共类Gdutype实现了可序列化{
私有静态最终长serialVersionUID=1L;
//@马克斯(value =?)@ min(value=?)/ /如果您知道小数域的范围,请考虑使用这些注释来执行字段验证。
@身份证
@基本(可选=假)
@NotNull
@列(name=“GDUTYPE\u ID”)
私有BigDecimal gdutypeId;
@基本(可选=假)
@NotNull
@尺寸(最小值=1,最大值=10)
@列(名称=“产品名称”)
私有字符串产品名称;
@基本(可选=假)
@NotNull
@尺寸(最小值=1,最大值=10)
@列(name=“API_name”)
私有字符串名称;
@尺寸(最大值=5)
@列(name=“API\U版本”)
私有字符串版本;
@OneToMany(cascade=CascadeType.ALL,mappedBy=“gdutypeId”,fetch=FetchType.LAZY)
私人收藏;
公共Gdutype(){
}
公共Gdutype(BigDecimal gdutypeId){
this.gdutypeId=gdutypeId;
}
公共Gdutype(BigDecimal gdutypeId、字符串productName、字符串apiName){
this.gdutypeId=gdutypeId;
this.productName=productName;
this.apiName=apiName;
}
//setter和getter、hashcode、equals
}
包com.model;
@实体
@表(name=“逆变器”)
@命名查询({
@NamedQuery(name=“Inverter.findAll”,query=“从逆变器i中选择i”),
@NamedQuery(name=“Inverter.findByInverterId”,query=“从逆变器i中选择i,其中i.invertrid=:invertrid”),
@NamedQuery(name=“Inverter.findByName”,query=“从Inverter i中选择i,其中i.name=:name”),
@NamedQuery(name=“Plant.findByNominalPower”,query=“从Plant p中选择p,其中p.nominalPower=:nominalPower”)})
@SequenceGenerator(name=“SEQ4”,sequenceName=“inverterSeq”,allocationSize=1)
@JsonIdentityInfo(generator=ObjectiveGenerators.IntSequenceGenerator.class,属性=“@Invertrid”)
公共类逆变器实现可串行化{
私有静态最终长serialVersionUID=1L;
//@马克斯(value =?)@ min(value=?)/ /如果您知道小数域的范围,请考虑使用这些注释来执行字段验证。
@身份证
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“SEQ4”)
@基本(可选=假)
@NotNull
@列(名称=“逆变器ID”)
私人大鳄;
@尺寸(最大值=45)
@列(name=“name”)
私有字符串名称;
@基本(可选=假)
@NotNull
@列(名称=“标称功率”)
私人双重名义权力;
@OneToMany(cascade=CascadeType.ALL,mappedBy=“invertrid”,fetch=FetchType.LAZY)
私人收藏;
@JoinColumn(name=“工厂ID”,referencedColumnName=“工厂ID”)
@ManyToOne(可选=false,fetch=FetchType.LAZY)
私有植物;
@JoinColumn(name=“PCI\U ID”,referencedColumnName=“PCI\U ID”)
@manytone(“fetch=FetchType.LAZY”)
私人Pci pciId;
@JoinColumn(name=“invertype\u ID”,referencedColumnName=“IT\u ID”)
@ManyToOne(可选=false,fetch=FetchType.LAZY)
专用逆变器类型逆变器类型ID;
@JoinColumn(name=“GDU\u ID”,referencedColumnName=“GDU\u ID”)
@manytone(fetch=FetchType.LAZY)
私有Gdu gduId;
公共逆变器(){}
}
包com.model;
@实体
@表(name=“工厂”)
@命名查询({
@NamedQuery(name=“Plant.findAll”,query=“从工厂p中选择p”),
@NamedQuery(name=“Plant.findByPlantId”,query=“从Plant p中选择p,其中p.plantId=:plantId”),
@NamedQuery(name=“Plant.findByName”,query=“从工厂p中选择p,其中p.name=:name”),
@NamedQuery(name=“Plant.findbyooperator”,query=“从工厂p中选择p,其中p.operator=:operator”),
@NamedQuery(name=“Plant.findbycommission”,query=“从工厂p中选择p,其中p.commission=:commission”),
@NamedQuery(name=“Plant.findByNominalPower”,query=“从电厂p中选择p,其中p.nominalPower=:nominalPower”),
@NamedQuery(name=“Plant.findByContador”,query=“从Plant p中选择p,其中p.contador=:contador”)}
@SequenceGenerator(name=“SEQ2”,sequenceName=“plantSeq”,allocationSize=1)
@JsonIdentityInfo(generator=ObjectiveGenerators.IntSequenceGenerator.class,属性=“@plantId”)
公共类Plant实现了可序列化{
私有静态最终长serialVersionUID=1L;
//@马克斯(value =?)@ min(value=?)/ /如果您知道小数域的范围,请考虑使用这些注释来执行字段验证。
@身份证
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“SEQ2”)
@基本(可选=假)
@NotNull
@列(name=“PLANT\u ID”)
私有植物;
@尺寸(最大值=45)
@列(name=“name”)
私有字符串名称;
@尺寸(最大值=3
Here is Inverter and Plant and GduType. Please have a look

package com.model;
//imports are here
@Entity
@Table(name = "GDUTYPE")
@NamedQueries({
    @NamedQuery(name = "Gdutype.findAll", query = "SELECT g FROM Gdutype g"),
    @NamedQuery(name = "Gdutype.findByGdutypeId", query = "SELECT g FROM Gdutype g WHERE g.gdutypeId = :gdutypeId"),
    @NamedQuery(name = "Gdutype.findByProductName", query = "SELECT g FROM Gdutype g WHERE g.productName = :productName"),
    @NamedQuery(name = "Gdutype.findByApiName", query = "SELECT g FROM Gdutype g WHERE g.apiName = :apiName"),
    @NamedQuery(name = "Gdutype.findByApiVersion", query = "SELECT g FROM Gdutype g WHERE g.apiVersion = :apiVersion")})
public class Gdutype implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "GDUTYPE_ID")
    private BigDecimal gdutypeId;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 10)
    @Column(name = "PRODUCT_NAME")
    private String productName;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 10)
    @Column(name = "API_NAME")
    private String apiName;
    @Size(max = 5)
    @Column(name = "API_VERSION")
    private String apiVersion;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "gdutypeId",fetch = FetchType.LAZY)
    private Collection<Gdu> gduCollection;

    public Gdutype() {
    }

    public Gdutype(BigDecimal gdutypeId) {
        this.gdutypeId = gdutypeId;
    }
    public Gdutype(BigDecimal gdutypeId, String productName, String apiName) {
        this.gdutypeId = gdutypeId;
        this.productName = productName;
        this.apiName = apiName;
    }
    //setters and getters ,hashcode,equals
}


package com.model;
@Entity
@Table(name = "INVERTER")
@NamedQueries({
    @NamedQuery(name = "Inverter.findAll", query = "SELECT i FROM Inverter i"),
    @NamedQuery(name = "Inverter.findByInverterId", query = "SELECT i FROM Inverter i WHERE i.inverterId = :inverterId"),
    @NamedQuery(name = "Inverter.findByName", query = "SELECT i FROM Inverter i WHERE i.name = :name"),
    @NamedQuery(name = "Plant.findByNominalPower", query = "SELECT p FROM Plant p WHERE p.nominalPower = :nominalPower")})
@SequenceGenerator(name="SEQ4", sequenceName="inverterSeq", allocationSize=1)
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@inverterId")
public class Inverter implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ4")    
    @Basic(optional = false)
    @NotNull
    @Column(name = "INVERTER_ID")
    private BigDecimal inverterId;
    @Size(max = 45)
    @Column(name = "NAME")
    private String name;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NOMINAL_POWER")
    private double nominalPower;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "inverterId", fetch = FetchType.LAZY)
    private Collection<Mppt> mpptCollection;
    @JoinColumn(name = "PLANT_ID", referencedColumnName = "PLANT_ID")
    @ManyToOne(optional = false, , fetch = FetchType.LAZY)
    private Plant plantId;
    @JoinColumn(name = "PCI_ID", referencedColumnName = "PCI_ID")
    @ManyToOne(" fetch = FetchType.LAZY)
    private Pci pciId;
    @JoinColumn(name = "INVERTERTYPE_ID", referencedColumnName = "IT_ID")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Invertertype invertertypeId;
    @JoinColumn(name = "GDU_ID", referencedColumnName = "GDU_ID")
    @ManyToOne(fetch = FetchType.LAZY)
    private Gdu gduId;
    public Inverter() {  }
}


package com.model;
@Entity
@Table(name = "PLANT")
@NamedQueries({
    @NamedQuery(name = "Plant.findAll", query = "SELECT p FROM Plant p"),
    @NamedQuery(name = "Plant.findByPlantId", query = "SELECT p FROM Plant p WHERE p.plantId = :plantId"),
    @NamedQuery(name = "Plant.findByName", query = "SELECT p FROM Plant p WHERE p.name = :name"),
    @NamedQuery(name = "Plant.findByOperator", query = "SELECT p FROM Plant p WHERE p.operator = :operator"),
    @NamedQuery(name = "Plant.findByCommissioning", query = "SELECT p FROM Plant p WHERE p.commissioning = :commissioning"),
    @NamedQuery(name = "Plant.findByNominalPower", query = "SELECT p FROM Plant p WHERE p.nominalPower = :nominalPower"),
    @NamedQuery(name = "Plant.findByContador", query = "SELECT p FROM Plant p WHERE p.contador = :contador")})
@SequenceGenerator(name="SEQ2", sequenceName="plantSeq", allocationSize=1)
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@plantId")
public class Plant implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ2")
    @Basic(optional = false)
    @NotNull
    @Column(name = "PLANT_ID")
    private BigDecimal plantId;
    @Size(max = 45)
    @Column(name = "NAME")
    private String name;
    @Size(max = 30)
    @Column(name = "OPERATOR")
    private String operator;
    @Column(name = "COMMISSIONING")
    @Temporal(TemporalType.TIMESTAMP)
    private Date commissioning;
    @Basic(optional = false)
    @NotNull
    @Column(name = "NOMINAL_POWER")
    private double nominalPower;
    @Column(name = "CONTADOR")
    private BigInteger contador;
    @Column(name = "LONGITUDE")
    private BigDecimal longitude;
    @Column(name = "LATITUDE")
    private BigDecimal latitude;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "plantId", fetch = FetchType.LAZY)
    private Collection<Sensor> sensorCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "plant", fetch = FetchType.LAZY)
    private Collection<Userplant> userplantCollection;
    @JoinColumn(name = "REPORT_ID", referencedColumnName = "REPORT_ID")
    @ManyToOne( fetch = FetchType.LAZY)
    private Report reportId;
    @JoinColumn(name = "INSTALLATION_ID", referencedColumnName = "INSTALLATION_ID")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Installation installationId;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "plantId", fetch = FetchType.LAZY)
    private Collection<Gdu> gduCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "plantId", fetch = FetchType.LAZY)
    private Collection<Inverter> inverterCollection;

    public Plant() {
    }

    public Plant(BigDecimal plantId) {
        this.plantId = plantId;
    }

    public Plant(BigDecimal plantId, double nominalPower) {
        this.plantId = plantId;
        this.nominalPower = nominalPower;
    }
}