জাভ্যাক্স.পারস্পেসিটি.ট্যাবল.ইন্ডেক্সেসে () লাজাভ্যাক্স / অধ্যবসায় / সূচি


85

আমি একটি প্লে ফ্রেমওয়ার্ক আবেদন আছে এবং আমি ছিল হাইবারনেট 4.2.5.Final (যা ম্যাভেন নির্ভরতা ব্যবস্থাপক মাধ্যমে প্রাপ্ত করা হয়) ব্যবহার করে। আমি হাইবারনেট ৪.৩.০-এ আপগ্রেড করার সিদ্ধান্ত নিয়েছি inal ফাইনাল, আমার অ্যাপ্লিকেশনটি সাফল্যের সাথে পুনরায় কম্পাইল করে এটি চালিয়েছে।

আমি নীচে ব্যতিক্রম পেয়েছি, এবং কেন তা বুঝতে পেরেছি না। আমি আবার 4.2.5 এ ডাউনগ্রেড করেছি এবং এই সমস্যাটি ঘটেনি। আমি তখন, 4.2.5 এর পরে প্রতিটি ফাইনাল রিলিজের সাথে হাইবারনেটকে আপগ্রেড করার চেষ্টা করেছি। অর্থাৎ, আমি ৪.২.৫.ফাইনাল থেকে ৪.২..6. ফাইনাল থেকে ৪.২..7. ফাইনাল, ৪.২.৮. ফাইনাল এবং তারপরে ৪.৩. ফাইনাল এ গিয়েছি। আমি 4.3.0. ফাইনাল আপগ্রেড না হওয়া পর্যন্ত সমস্যাটি ঘটে না।

জাভা সংস্করণ তথ্য

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

এবং ব্যতিক্রম :

play.api.UnexpectedException: Unexpected exception[NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:152) ~[play_2.10.jar:2.2.1]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:112) ~[play_2.10.jar:2.2.1]
    at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:112) ~[play_2.10.jar:2.2.1]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:110) ~[play_2.10.jar:2.2.1]
    at scala.util.Success.flatMap(Try.scala:200) ~[scala-library.jar:na]
Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
    at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:936) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:781) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3762) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3716) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1410) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844) ~[hibernate-core-4.3.0.Final.jar:4.3.0.Final]

4
আপনি এমন একটি পদ্ধতি কল করছেন যা নতুন সংস্করণে নেই
ব্রায়ান রোচ

উত্তর:


79

আমিও একই সমস্যায় পড়েছি। এখানে প্রশ্নটি হ'ল প্লে-জাভা-জাপা আর্টিফ্যাক্ট (বিল্ড.এসবিটি ফাইলে জাভাজেপা কী) অনুমানের ভিন্ন সংস্করণের উপর নির্ভর করে (version 2.0 -> "org.hibernate.javax.persistence" % "hibernate-jpa-2.0-api" % "1.0.1.Final")

যখন আপনি হাইবারনেট-সত্তা প্রশাসক 4.3 যুক্ত করেছেন এটি সত্তা ব্যবসায়ের জন্য নতুন বৈশিষ্ট (2.1) এবং একটি আলাদা কারখানার সরবরাহকারী এনেছে। মূলত আপনি ক্লাসপথে উভয় জারকে ট্রানজিটিভ নির্ভরতা হিসাবে শেষ করেছেন।

আপনার বিল্ড.এসবিটি ফাইলটিকে এটির মতো সম্পাদনা করুন এবং নতুন এপিআই নির্ভরতার জন্য জেপিএ প্লাগইনের একটি নতুন সংস্করণ প্লে না করা পর্যন্ত এটি অস্থায়ীভাবে আপনার সমস্যার সমাধান করবে।

libraryDependencies ++= Seq(
javaJdbc,
javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"),
"org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final"
)

এই জন্য play 2.2.x। পূর্ববর্তী সংস্করণগুলিতে বিল্ড ফাইলগুলির মধ্যে কিছু পার্থক্য ছিল।


4
দুর্দান্ত, এটা কাজ করেছে! ধন্যবাদ : ভবিষ্যতে উল্লেখের জন্য, এখানে সকর্মক নির্ভরতা ব্যতীত ডকুমেন্টেশন একটি লিঙ্ক scala-sbt.org/0.12.2/docs/Detailed-Topics/...
musubi

4
ধন্যবাদ! খাঁটি ব্যবহারকারীদের জন্য: এর অর্থ হ'ল আর <groupId>org.hibernate.java-persistence</groupId> <artifactId>jpa-api</artifactId> কোনও ব্যবহার করবেন না
ওক

4
hibernate-jpa-2.0-apiহাইবারনেট 4.2.8.Finalসংস্করণের জন্য কাজটিও 4.3.0.Finalএকটি ত্রুটি নিক্ষেপ করা হয়।
হার্মিত সিং তারা তারা

প্লে libraryDependencies ++= Seq( javaJdbc, javaEbean, cache, javaJpa.exclude("org.hibernate.javax.persistence", "hibernate-jpa-2.0-api"), "org.hibernate" % "hibernate-core" % "4.3.0.Final", "org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final", "com.typesafe" %% "play-plugins-mailer" % "2.2.0", "postgresql" % "postgresql" % "9.1-901-1.jdbc4", "com.google.guava" % "guava-base" % "r03", "org.apache.commons" % "commons-io" % "1.3.2" )২.২.৩ এ এখনও নুশমথোডএক্সপশন নিক্ষেপ করছেন NoSuchMethodError:javax.persistence.JoinTable.indexes()কীভাবে সমাধান করবেন কেউ জানেন?
ফ্রান্সেসকোমে

প্লে ২.৩.৪ সংস্করণেও একই সমস্যার মুখোমুখি হচ্ছি। এখানে স্ট্যাক ট্রেস play.api. অপ্রত্যাশিত ধারণা: অপ্রত্যাশিত ব্যতিক্রম [NoSuchMethodError: javax.persistance.Table.indexes () [Ljavax / দৃistence়তা / সূচক;]] play.core.Reloadable অ্যাপ্লিকেশন $$ anonfun $ get on 1 $$ anonfun $ প্রয়োগ $ 1 $$ আওনফুন $ 1. অ্যাপ্লিকেশন (অ্যাপ্লিকেশনপ্রাইডার.স্কালা: 170) .c [play_2.11-2.3.4.jar: 2.3.4] play.core এ el anonfun $ 1. অ্যাপ্লিকেশন (অ্যাপ্লিকেশনপ্রোভাইডার.স্কালা: ১৩০) sc [play_2.11-2.3.4.jar: 2.3.4] এ স্কালা.অপশন.ম্যাপ (অপশন.স্কালা: 145) ~ [স্কালা-লাইব্রেরি -২.১১.১। জার: না]
কেতন খায়রনার

71

হাইপারনেট ৪.৩ হ'ল জেপিএ ২.১ স্পেস (জাভা ই ই 7 এর অংশ) বাস্তবায়নের প্রথম সংস্করণ। এবং এটি ক্লাসপথের জেপিএ ২.১ গ্রন্থাগারটি প্রত্যাশা করে, জেপিএ ২.০ লাইব্রেরি নয়। এজন্যই আপনি এই ব্যতিক্রমটি পান: টেবিল.ইনডেক্স () জেপিএ ২.১ এ প্রবর্তিত সারণীর একটি নতুন বৈশিষ্ট্য


আমি একই ট্র্যাকের নিচে যাচ্ছিলাম তবে ত্রুটিটি ঘটে এমন কোডটি indexes()টাইপের একটি উল্লেখকে কল করা হয়org.hibernate.annotations.Table
সোটিরিওস ডেলিমনলিস

4
আপনি সম্ভবত সঠিক কোডটির দিকে তাকাচ্ছেন না। Github.com/hibernate/hibernate-orm/blob/4.3.0.Final/…
জেবি নিজেট

4
@ জেবিনিজেট কি জেপিএ ২.১ কেবল জাভা ইই 7 এ পাওয়া যায় এবং এসই in তে পাওয়া যায় না? এবং আমি অনুমান করছি যে জেপিএ ২.০ জাভা এসই 7 এ উপলব্ধ?
মুসুবি

4
@ জেবিনিজেট তাই সমাধান কী। আমি কি জাভা EE তে 7 এ পরিবর্তন করতে পারি বা আমি JPA 2.0 কে JPA 2.1 এ পরিবর্তন করতে পারি ?? যদি আমি এটি করি ত্রুটি দেয় ..
শৈলেন্দ্র মাদদা

4
<! - mvnrepository.com/artifact/javax.persistence/... -> <নির্ভরতা> <groupId> javax.persistence </ groupId> <artifactId> javax.persistence-API </ artifactId> <version> '2.2 </ সংস্করণ > << নির্ভরতা>
বুলা

15

আপনার সম্ভবত ক্লাসপথে হাইবারনেট-জেপিএ-এপি-র 2 টি ভিন্ন সংস্করণ রয়েছে। এই রানটি পরীক্ষা করতে:

mvn dependency:tree >dep.txt

তারপরে হাইবারনেট-জেপা -২.০-এপিআই এবং হাইবারনেট-জেপা-২.১-এপি রয়েছে কিনা তা অনুসন্ধান করুন। এবং অতিরিক্ত এক বাদ দিন।


14

আমি আমার হাইবারনেট জেপিএ ২.১ এ আপডেট করেছি এবং এটি কাজ করে।

<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.1-api</artifactId>
    <version>1.0.0.Final</version>
</dependency>

6

আমি জেবিএস ap / মডিউল / জাভ্যাক্স / জেদী / এপিআই / প্রধান অবস্থিত জেপিএ এপি জার ফাইলটি 'হাইবারনেট-জেপিএ-২.১-এপি' দিয়ে প্রতিস্থাপন করে সমস্যার সমাধান করতে পারলাম। ডিরেক্টরিতে মডিউল.এক্সএমএল আপডেট করার সাথে।


4

ত্রুটি: java.lang.NoSuchMethodError: javax.persistance.JoinTable.indexes () [ল্যাভাক্স / জেদী / সূচক;

আমার সমস্যার সমাধান করার একমাত্র জিনিসটি পম.এক্সএমএলে নিম্নলিখিত নির্ভরতা অপসারণ করছিল: <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</version> </dependency>

এবং এটির জন্য প্রতিস্থাপন করুন:

<dependency>
  <groupId>javax.persistence</groupId>
  <artifactId>persistence-api</artifactId>
  <version>1.0.2</version>
</dependency>

আশা করি এটি কাউকে সাহায্য করবে।


0

আমার বসন্ত বুট অ্যাপ্লিকেশনটিতে আমি একই সমস্যাটি পেয়েছি। liv ফোল্ডার থেকে javax.persistance.jar ফাইলটি ম্যানুয়ালি সরানোর পরে। সমস্যা স্থির ছিল। pom.xML ফাইলে আমি কেবল নির্ভরশীলতা অনুসরণ করে চলেছি

  <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
  </dependency>

0

আমার একই সমস্যা ছিল, আমি সত্তা শ্রেণীর org.hibernate.annotations.Tableপরিবর্তে টীকাটি ব্যবহার করে এটি ঠিক করেছি javax.persistence.Table

import javax.persistence.Entity;
import org.hibernate.annotations.Table;

@Entity
@Table(appliesTo = "my_table")
public class MyTable{
//and rest of the code

0

আপনার ক্লাসপথে একাধিক জেপিএ সরবরাহকারী রয়েছে। অথবা আপনার অ্যাপ্লিকেশন সার্ভার লিব ফোল্ডারে অন্ততপক্ষে।

আপনি যদি এখানে উল্লিখিত কমান্ডটি ব্যবহার করে নির্ভরতাগুলির জন্য মাভেন চেক ব্যবহার করছেন তবে https://stackoverflow.com/a/47474708/3333878

তারপরে অযাচিত নির্ভরতা বাদ দিয়ে / বাদ দিয়ে ঠিক করুন।

আপনার ক্লাসপথে যদি কেবলমাত্র একটি নির্ভরশীলতা থাকে তবে অ্যাপ্লিকেশন সার্ভারের ক্লাস লোডারটি সমস্যা হতে পারে।

ওয়েব স্পিয়ার, ওয়াইল্ডফ্লাই, টমি ইত্যাদির মতো জাভাইই অ্যাপ্লিকেশন সার্ভারগুলির মতো জেপিএ এবং অন্যান্য ইই স্ট্যান্ডার্ডগুলির নিজস্ব প্রয়োগ রয়েছে, ক্লাস লোডার আপনার ওয়ার্ডপথ থেকে ওয়ার / ইয়ার ফাইল থেকে বাছাইয়ের পরিবর্তে এটি নিজস্ব প্রয়োগ করতে পারে।

এড়াতে, আপনি নীচের পদক্ষেপগুলি চেষ্টা করতে পারেন।

  1. অ্যাপ্লিকেশন সার্ভারের লাইব্রেরির পথে আপত্তিকর জার সরিয়ে ফেলা হচ্ছে। সাবধানতার সাথে এগিয়ে যান, কারণ এটি অন্যান্য হোস্ট করা অ্যাপ্লিকেশনগুলিকে ভেঙে দিতে পারে।

টোমির ১..5.৫ প্লামু / ওয়েবে এটি জেপিএ ২.০ ব্যবহার eclipselink-2.4.2করে libফোল্ডারে বান্ডিল হবে , তবে আমাকে জেপিএ ২.১ ব্যবহার করতে হয়েছিল org.hibernate:hibernate-core:5.1.17, তাই গ্রহপরিবর্তক জারটি সরিয়ে এবং হাইবারনেট কোর থেকে সমস্ত সম্পর্কিত / ট্রানজিটিভ নির্ভরতা যুক্ত করে।

  1. একটি ভাগ করা লাইব্রেরি যুক্ত করুন। এবং ম্যানুয়ালি অ্যাপ্লিকেশন সার্ভারের পথে জারে যুক্ত করুন। ওয়েবসাইট স্পিয়ারে এই বিকল্প রয়েছে।

  2. ওয়েবস্পিয়ারে, শ্রেণি লোডার কার্যকর করা যায় can সুতরাং এটি অ্যাপ্লিকেশন সার্ভারের ক্লাসপথটি শেষ লোড করা, অর্থাৎ পিতা-মাতার শেষ এবং আপনার পাথ লোড করার আগে making এটি সমাধান করতে পারে।

প্রথম পয়েন্ট নিয়ে এগিয়ে যাওয়ার আগে আপনার অ্যাপসভারের উপরের বৈশিষ্ট্য রয়েছে কিনা তা পরীক্ষা করুন।

তথ্যসূত্র

https://www.ibm.com/support/ ज्ञानজ্ঞেস্টার/ এসএসইকিটিপি_9.0.5/com.ibm.websphere.base.doc/ae/trun_classload_server.html

https://www.ibm.com/support/pages/how-create-shared-library-and-associate-it-application-server-or-enterprise-application-websphere-application-server

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.