Uploaded image for project: 'Hibernate ORM'
  1. HHH-10845

HHH000327 org.hibernate.property.access.spi.PropertyAccessException

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 5.1.0
    • Fix Version/s: None
    • Component/s: hibernate-core
    • Labels:
      None
    • Environment:
      hibernate-core 5.1.0.Final, Oracle 11G
    • Bug Testcase Reminder (view):

      Bug reports should generally be accompanied by a test case!

    • Last commented by a user?:
      true

      Description

      I have two simple joined entities and next exception when I try to get their property:

      Hibernate:
      select
      tarifklsk0_.ID as ID1_12_0_,
      tarifklsk0_.FK_TARIF as FK_TARIF2_12_0_,
      tarifservp1_.FK_TARIF as FK_TARIF2_11_1_,
      tarifservp1_.ID as ID1_11_1_,
      tarifservp1_.ID as ID1_11_2_,
      tarifservp1_.FK_TARIF as FK_TARIF2_11_2_,
      tarifservp1_.N1 as N3_11_2_
      from
      TR.TARIFXKLSK tarifklsk0_
      left outer join
      TR.TARIF_SERV_PROP tarifservp1_
      on tarifklsk0_.FK_TARIF=tarifservp1_.FK_TARIF
      where
      tarifklsk0_.ID=?
      Jun 13, 2016 7:38:26 AM org.hibernate.event.internal.DefaultLoadEventListener doOnLoad
      INFO: HHH000327: Error performing load command : org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [private java.lang.Integer TarifKlsk.fkTarif] by reflection for persistent property TarifKlsk#fkTarif : 1027303
      Exception in thread "main" org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [private java.lang.Integer TarifKlsk.fkTarif] by reflection for persistent property TarifKlsk#fkTarif : 1027303
      at org.hibernate.property.access.spi.GetterFieldImpl.get(GetterFieldImpl.java:43)
      ....skipped...
      Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Integer field TarifKlsk.fkTarif to java.lang.Integer
      at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
      at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)

      My entities:

      TarifKlsk

      import java.util.HashSet;
      import java.util.Set;

      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.OneToMany;
      import javax.persistence.Table;

      import org.hibernate.annotations.BatchSize;

      @SuppressWarnings("serial")
      @Entity
      @Table(name = "TARIFXKLSK", schema="TR")
      public class TarifKlsk implements java.io.Serializable {

      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      @Column(name = "ID", updatable = false, nullable = false)
      private Integer id;

      @OneToMany(fetch = FetchType.EAGER)
      @JoinColumn(name="FK_TARIF", referencedColumnName="FK_TARIF")
      @BatchSize(size = 50)
      private Set<TarifServProp> tarifservprop = new HashSet<TarifServProp>(0);

      @Column(name = "FK_TARIF", updatable = false, nullable = false)
      private Integer fkTarif;

      public Integer getId()

      { return id; }

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

      public Set<TarifServProp> getTarifservprop() { return tarifservprop; }

      public void setTarifservprop(Set<TarifServProp> tarifservprop) { this.tarifservprop = tarifservprop; }

      public Integer getFkTarif() { return fkTarif; }

      public void setFkTarif(Integer fkTarif) { this.fkTarif = fkTarif; }

      }
      TarifServProp

      import javax.persistence.Column;
      import javax.persistence.Entity;
      import javax.persistence.GeneratedValue;
      import javax.persistence.GenerationType;
      import javax.persistence.Id;
      import javax.persistence.Table;

      @SuppressWarnings("serial")
      @Entity
      @Table(name = "TARIF_SERV_PROP", schema="TR")
      public class TarifServProp implements java.io.Serializable {

      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      @Column(name = "ID", updatable = false, nullable = false)
      private Integer id;

      @Column(name = "FK_TARIF", updatable = false, nullable = false)
      private Integer fkTarif;

      public Integer getId() { return id; }

      @Column(name = "N1", updatable = false, nullable = false)
      private Integer n1;

      public void setId(Integer id)

      { this.id = id; }

      public Integer getFkTarif()

      { return fkTarif; }

      public void setFkTarif(Integer fkTarif)

      { this.fkTarif = fkTarif; }

      public Integer getN1()

      { return n1; }

      public void setN1(Integer n1)

      { this.n1 = n1; }

      }
      My test module:

      public static void main(String[] args) {
      SessionFactory sf = HibernateUtil.getSessionFactory();
      Session sess = sf.openSession();
      sess.beginTransaction();

      TarifKlsk k2=sess.get(TarifKlsk.class, 1027303);
      for (TarifServProp t : k2.getTarifservprop())

      { System.out.println("Tar="+t.getN1()); }

      System.out.println("End init");
      What am I doing wrong? I've checked all fields of these entities and all of them named properly....

      My POM.xml

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.journaldev.hibernate</groupId>
      <artifactId>HibernateEHCacheExample</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <description>Hibernate Secondary Level Cache Example using EHCache implementation</description>

      <dependencies>
      <!-- Hibernate Core API -->
      <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>5.1.0.Final</version>
      </dependency>
      <!-- EHCache Core APIs -->
      <!-- http://mvnrepository.com/artifact/net.sf.ehcache/ehcache-core -->
      <dependency>
      <groupId>net.sf.ehcache</groupId>
      <artifactId>ehcache-core</artifactId>
      <version>2.6.11</version>
      </dependency>

      <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-ehcache -->
      <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-ehcache</artifactId>
      <version>5.2.0.Final</version>
      </dependency>

      <!-- EHCache uses slf4j for logging -->
      <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>1.7.5</version>
      </dependency>
      </dependencies>

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              kevinlexus Leo
              Participants:
              Leo
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: