ওরাকল ডেটাবেস 11 জি এর জন্য হাইবারনেট উপভাষা?


99

ওরাকল ডেটাবেস 11 জি এর জন্য কি হাইবারনেট উপভাষা রয়েছে? নাকি আমার org.hibernate.dialect.Oracle10gDialectসেই জাহাজগুলি হাইবারনেটের সাথে ব্যবহার করা উচিত ?

উত্তর:


105

ওরাকল 10 জি ডায়ালেক্টটি ব্যবহার করুন। এছাড়াও সাম্প্রতিক জেডিবিসি ড্রাইভারদের জন্য হাইবারনেট ৩.৩.২+ প্রয়োজন (অভ্যন্তরীণ শ্রেণিবদ্ধ কাঠামো পরিবর্তিত হয়েছে - লক্ষণগুলি একটি বিমূর্ত শ্রেণীর সম্পর্কে ঝকঝকে থাকবে)।

ওরাকল 11 জি এর ডায়ালেক্টটি ওরাকল 10 জি ( org.hibernate.dialect.Oracle10gDialect ) এর সমান । সূত্র: http://docs.jboss.org/hibernate/orm/3.6/references/en-US/html/session-configration.html#configration-optional-diaलेक्ट


4
দুর্ভাগ্যক্রমে "ORA-01754" এর জন্য সহায়তা করে না: একটি টেবিলে কেবলমাত্র LONG টাইপের একটি কলাম থাকতে পারে।
জান গোয়েভার্টস

আমার নির্দিষ্ট সংরক্ষিত ক্রিয়াকলাপ ইন্টারভাল নিয়ে সমস্যা আছে .. যেমন "@ ফর্মুলা (" SYSDATE - ইন্টারভাল '1' ঘন্টা আওয়ার * SHOW_LIMIT_HOURS ")"। আমি জানি না এটি কোনও সমস্যা উত্পন্ন করতে পারে তবে এটি একটি ভাল সমাধান বলে মনে হচ্ছে: stackoverflow.com/a/26907699/1488761
এডুয়ার্ডো ফ্যাব্রিকিও

12

সমর্থিত ডাটাবেস অনুসারে , ওরাকল 11 জি আনুষ্ঠানিকভাবে সমর্থিত নয়। যদিও, আমি বিশ্বাস করি আপনার ব্যবহারে কোনও সমস্যা হওয়া উচিত নয় org.hibernate.dialect.OracleDialect


15
মনে রাখবেন যে org.hibernate.dialect.OracleDialectঅবচিত ( docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/... )। আপনার ওরাকল 10 জি ডায়ালেক্টটি ব্যবহার করা উচিত।
যোনাতন

7
ওরাকল 11 এখন সমর্থিত
এমজেবি

8
@ এমজেবি হিসাবে উল্লেখ করা হয়েছে ওরাকল 11 সমর্থিত। অনুপস্থিত অংশটি হ'ল: এটি org.hibernate.dialect.Oracle10g দ্বারা ডায়ালেক্ট ক্লাস লিঙ্কটি সমর্থন করা হয় (হায়ারনেট ৪.x এর ক্ষেত্রেও প্রযোজ্য)
বিমিকালিক

4

মোডটি org.hibernate.dialect.Oracledialect ব্যবহার করে (অবমূল্যায়িত) উপভাষা এবং ওরাকল 11 জি ডাটাবেস নিয়ে আমাদের একটি সমস্যা হয়েছিল hibernate.hbm2ddl.auto = validate

এই উপভাষার সাহায্যে হাইবারনেট সিকোয়েন্সগুলি সন্ধান করতে অক্ষম ছিল (কারণ getQuerySequencesString() পদ্ধতিটির বাস্তবায়ন , যা এই কোয়েরিকে ফিরিয়ে দেয়:

"select sequence_name from user_sequences;"

যার জন্য কার্যকর করা ডাটাবেস থেকে খালি ফলাফল দেয়)।

ডায়ালিট org.hibernate.dialect.Oracle9iDialect বা আরও বেশি ব্যবহার করে getQuerySequencesString() পদ্ধতির ভিন্ন প্রয়োগের কারণে সমস্যাটি সমাধান করা হয় :

"select sequence_name from all_sequences union select synonym_name from all_synonyms us, all_sequences asq where asq.sequence_name = us.table_name and asq.sequence_owner = us.table_owner;"

পরিবর্তে কার্যকর হলে সমস্ত ক্রম ফেরত দেয়।


2

অন্ততপক্ষে EclipseLink 10g এবং 11g এর ক্ষেত্রে পৃথক। 11 গ্রাম হওয়ার পরে, পৃষ্ঠাগুলি প্রশ্নের জন্য ফার্স্ট_স ইঙ্গিত ব্যবহার করার পরামর্শ দেওয়া হচ্ছে না।

দেখুন "এটা বিশেষ ক্যোয়ারী প্রতি নিষ্ক্রিয় jpa নির্দেশ করা সম্ভব" । এই জাতীয় কোয়েরি 11 গ্রাম ব্যবহার করা উচিত নয়।

SELECT * FROM (
  SELECT /*+ FIRST_ROWS */ a.*, ROWNUM rnum  FROM (
    SELECT * FROM TABLES INCLUDING JOINS, ORDERING, etc.) a
  WHERE ROWNUM <= 10 )
WHERE rnum > 0;

তবে অন্যান্য স্নিগ্ধতা থাকতে পারে।


0

আপনি যদি ডাব্লুএল 10 ব্যবহার করেন তবে নিম্নলিখিতগুলি ব্যবহার করুন:

org.hibernate.dialect.Oracle10gDialect


-1

কেবল org.hibernate.dialect.OracleDialect 10g, 9 ইত্যাদি সরান ব্যবহার করুন


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