Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

हाइबरनेट- भूमिका के संग्रह को आलसी रूप से प्रारंभ करने में विफल:सेम। भाषा। रोगी, प्रॉक्सी प्रारंभ नहीं कर सका - कोई सत्र नहीं

आपका जोंस कन्वर्टर पूरी इकाई को क्रमबद्ध करने का प्रयास करता है, जिसमें प्रत्येक भाषा बोलने वाले सभी रोगियों की सूची होती है। मैंने जो समझा, उससे जोंस में रोगी की सूची अपेक्षित नहीं है। तो आपके पास तीन विकल्प हैं (आदेश दिया गया है जिसमें मैं उन पर विचार करूंगा):

  • भाषा निकाय में रोगियों के लिए मैपिंग निकालें। क्या आपको भाषा इकाई से रोगियों तक पहुंच प्राप्त करने की आवश्यकता है? अगर इस मैपिंग को नहीं हटाते हैं।
  • एक भाषा डीटीओ बनाएं जहां आप tx परत से बाहर निकलने से पहले अपना डेटा स्थानांतरित करते हैं। इस तरह जो कोई भी सेवा को कॉल करता है उसे कभी भी LazyInitException नहीं मिलेगा। कोई आश्चर्य नहीं :डीटीओ फ़ील्ड हमेशा उत्सुकता से सेट होते हैं।
  • रोगी फ़ील्ड को क्रमबद्ध न करने के लिए अपने json कनवर्टर को कॉन्फ़िगर करें। आपने यह नहीं कहा है कि आप किस जेसन लिब का उपयोग कर रहे हैं। उनमें से कुछ आपको कुछ क्षेत्रों को अनदेखा करने के लिए एक टिप्पणी देते हैं (@JsonIgnore उदाहरण के लिए जैक्सन के लिए), अन्य को जावा कॉन्फ़िगरेशन की आवश्यकता है।

पहला समाधान लागू करने के लिए, उन फ़ाइलों को इस तरह से अपडेट करें:

Language.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>

भाषा.जावा

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;
    }
}

मैंने नो-आर्ग कंस्ट्रक्टर और setId . को अपडेट किया है protected करने की विधि . आप उन्हें private . में भी अपडेट कर सकते हैं :केवल हाइबरनेट को ही उनका उपयोग करना चाहिए (और यह निजी क्षेत्रों/विधियों का उपयोग कर सकता है)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. खराब वर्णों को कैसे हटाएं जो MySQL में utf8 एन्कोडिंग के लिए उपयुक्त नहीं हैं?

  2. mySQL - तीन टेबल में डालें

  3. क्या कोई Android ऐप सीधे किसी ऑनलाइन mysql डेटाबेस से कनेक्ट हो सकता है?

  4. विंडोज 7 पर MySQL 5 के साथ इंस्टाल करना और काम करना

  5. एसक्यूएल पहले एन सकारात्मक पूर्णांक प्राप्त करने के लिए चयन करें