sql >> Database >  >> RDS >> Mysql

Slaapstand - kon een verzameling rollen niet lui initialiseren:bonen.Language.patients, kon proxy niet initialiseren - geen sessie

Uw json-converter probeert de hele entiteit te serialiseren, die de lijst bevat van alle patiënten die elke taal spreken. Van wat ik begreep, wordt de lijst met patiënten in de json niet verwacht. Je hebt dus drie opties (in volgorde waarin ik ze zou overwegen):

  • Verwijder de toewijzing aan patiënten in de entiteit Taal. Moet u toegang krijgen tot patiënten van de taalentiteit? Als dit niet het geval is, verwijdert u deze toewijzing.
  • Maak een taal-DTO waar u uw gegevens overzet voordat u de tx-laag verlaat. Op deze manier krijgt degene die de service belt nooit een LazyInitException. Geen verrassing:DTO-velden worden altijd gretig ingesteld.
  • Configureer uw json-converter om de patiëntvelden niet te serialiseren. Je hebt niet gezegd welke json-lib je gebruikt. Sommigen van hen geven u een annotatie om sommige velden te negeren (@JsonIgnore voor Jackson bijvoorbeeld), voor andere is java-configuratie vereist.

Om de eerste oplossing toe te passen, werkt u die bestanden op deze manier bij:

Taal.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated Sep 14, 2016 4:33:23 PM by Hibernate Tools 4.3.1 -->
<hibernate-mapping>
    <class name="beans.Language" table="language" catalog="myglukose" optimistic-lock="version">
        <id name="idlanguage" type="java.lang.Integer">
            <column name="idlanguage" />
            <generator class="identity" />
        </id>
        <property name="language" type="string">
            <column name="language" length="45" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

Taal.java

public class Language  implements java.io.Serializable {
    private Integer idlanguage;
    private String language;

    protected Language() {
    }


    public Language(String language) {
        this.language = language;
    }

    public Integer getIdlanguage() {
        return this.idlanguage;
    }

    protected void setIdlanguage(Integer idlanguage) {
        this.idlanguage = idlanguage;
    }
    public String getLanguage() {
        return this.language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }
}

Ik heb de no-arg constructor en setId . geüpdatet methode naar protected . Je kunt ze zelfs updaten naar private :alleen slaapstand zou ze ooit moeten gebruiken (en het kan privévelden / methoden gebruiken).



  1. PHP MySQL Griekse letters met als ???? merken

  2. Krijg polygoonpunten mysql

  3. ORA-12516, TNS:luisteraar kon geen beschikbare handler vinden

  4. Hoe LOAD_FILE gebruiken om een ​​bestand in een MySQL-blob te laden?