• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 18, 2025, 08:06:16 am

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 18, 2025, 08:06:16 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
[Μεταφορά και Διανομή ΗΕ]...
by tzortzis
[Today at 07:55:05]

Αποτελέσματα Εξεταστικής ...
by Mr Watson
[Today at 03:15:54]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by chris_p30
[Today at 00:45:33]

Ισραήλ - Ιράν: Πόλεμος στ...
by Katarameno
[June 17, 2025, 21:32:50 pm]

[Ψηφιακά Ολοκληρωμένα Κυκ...
by tzortzis
[June 17, 2025, 21:25:42 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by PAPARI69
[June 17, 2025, 20:59:13 pm]

[Γραφική] Λυμένα θέματα
by okanpala
[June 17, 2025, 18:56:22 pm]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[June 17, 2025, 14:25:00 pm]

Αντικατάστασης πυκνωτή σε...
by george14
[June 17, 2025, 13:58:20 pm]

Πότε θα βγει το μάθημα; -...
by tzortzis
[June 17, 2025, 13:19:53 pm]

[ΨEE] Γενικές απορίες και...
by Juror8
[June 17, 2025, 12:06:57 pm]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426706
Total Topics: 31710
Online Today: 215
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 20
Guests: 118
Total: 138
kkalamar
andreas2000
parvanitid
dimitrisif
tzortzis
koutalios
Rithan
thathas12
Chr1sgr
KZerenidis
gpap
Guts
dim_drag
Saint_GR
Farmengineer
Theislander
alexiosmara
sotos_sta
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Η γραμματεία είναι ανοιχτή καθημερινά 12:00-13:30 Tongue
THMMY.gr > Forum > Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα > Περί Υπολογιστών... > Software > Προγραμματισμός (C, VB, Delphi, PHP, ASP...) > Java (Moderators: chatzikys, PolarBear) > ScriptEngine και Hibernate.
0 Members and 1 Guest are viewing this topic.
Pages: [1] Go Down Print
Author Topic: ScriptEngine και Hibernate.  (Read 1034 times)
Issle
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 602



View Profile
ScriptEngine και Hibernate.
« on: October 07, 2010, 02:16:55 am »

Το hibernate είναι ένα βοηθητικό εργαλείο που επιτρέπει την ενσωμάτωση χαρακτηριστικών ODBMS σε RDBMS βάσεις δεδομένων. Είναι εξωτερικά Jar που ενσωματώνεις στην εφαρμογή σου και χρησιμοποιούν Reflection για να διαβάσουν τις κλάσεις και να εφαρμόσουν αρχές αντικειμενοστρεφών βάσεων δεδομένων σε αυτές.

Η κλάση ScriptEngine και οι παράγωγές της επιτρέπουν την εκτέλεση και το compile σε πηγαίο κώδικα την στιγμή που τρέχει η εφαρμογή χωρίς να απαιτείται restart. Δίνεις στην ScriptEngine τον φάκελο με τα αρχεία java και με αναδρομή αυτή τα κάνει compile. Τα αρχεία δεν γίνονται Linking στην κυρίως εφαρμογή καθώς έχουν δικό τους ξεχωριστό classpath το οποίο δεν εμφανίζεται πουθενά.

Εκεί ξεκινά και το πρόβλημα. Δέν μπορώ να κάνω τα Jar του Hibernate να δούν κλάσεις που βρίσκονται στο Classpath που προκύπτει από το Compilation της ScriptEngine. Τα jar, είναι της εφαρμογής και βλέπουν το classpath της εφαρμογής και της java. Πάνε 5 μέρες τώρα που προσπαθώ χωρίς αποτέλεσμα. Γενικά γνωρίζει κανείς αν είναι δυνατόν να γίνει "Reflection" από μία εφαρμογή σε κλάσεις που έχουν γίνει compile on runtime από ScriptEngine ?
Logged

We can be a nation that believe in war,
And still tells the world that we don't.
Let the flag for hypocrisy fly high from every pole
We're a little bit country, and we're a little bit rock n' roll
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: ScriptEngine και Hibernate.
« Reply #1 on: October 07, 2010, 12:14:34 pm »

Το Hibernate φορτώνει τα mappings των κλάσεων κατά την εκκίνηση (ή οταν πρωτοφτιάχνεις το SessionFactory αν θέλεις). Οπότε και να ήταν ίδιο το classpath μεταξύ των 2 modules, το Hibernate δεν θα καταλάβαινε τις κλάσεις γιατί δεν θα υπήρχαν τα mappings. Αλλά και να είχες τα mappings (τα δημιουργούσες runtime), σε τι αντικείμενα στο rdbms θα έκαναν map?

To ερώτημα σχετικά με το "reflection" λύνεται με το να χρησιμοποιήσεις τον default ClassLoader και φορτώσεις τις κλάσεις δυναμικά:
Code:
ClassLoader.getSystemClassLoader().loadClass(className)
Logged
Issle
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 602



View Profile
Re: ScriptEngine και Hibernate.
« Reply #2 on: October 07, 2010, 12:32:56 pm »

Τις κλάσεις δεν μπορώ να τις φορτώσω δυναμικά όταν χρησιμοποιώ ScriptEngine για να κάνω compile γιατί βρίσκονται σε ξεχωριστό classpath και δεν δημιουργούνται .class αρχεία. Άν χρησιμοποιήσω custom class loader, θα φορτωθεί μεν η κλάση στο classpath αλλά θα είναι διαφορετική από αυτήν που προέκυψε από την ScriptEngine right ? Μία λύση σαφώς θα ήταν να μετατρέψω όλο το Project μου ώστε να φορτώνονται οι κλάσεις μέσω ενός ClassLoader η καθεμιά. Είναι στίς λύσεις ανάγκης και προσπαθώ να την αποφύγω Smiley Όσο για το factory, καθε φορά που κάνω recompile/reload τον κώδικα, δημιουργώ νέο factory/config και γίνονται load όλα τα mappings ( annotations έχω ) από την αρχή.
« Last Edit: October 07, 2010, 12:35:13 pm by Issle » Logged

We can be a nation that believe in war,
And still tells the world that we don't.
Let the flag for hypocrisy fly high from every pole
We're a little bit country, and we're a little bit rock n' roll
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: ScriptEngine και Hibernate.
« Reply #3 on: October 07, 2010, 22:24:07 pm »

Εφόσον δεν έχεις class αρχεία, δεν μπορείς να χρησιμοποιήσεις τον default class loader για να φορτώσεις δυναμικά τις κλάσεις. Άρα υποχρεωτικά θα χρησιμοποιήσεις είτε τον class loader του script engine είτε ένα custom δικό σου. Μου φαίνεται ότι είναι η μόνh λύση.

Τα νέα αρχεία που κάνουν map στο rdbms?
Logged
Issle
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 602



View Profile
Re: ScriptEngine και Hibernate.
« Reply #4 on: October 08, 2010, 00:38:59 am »

Yap και εγώ κάπου εκεί κατέληξα, κρίμα όμως, java let me down ...

Όσο για τα αρχεία το mapping γίνεται με annotation από τις κλάσεις σε table της MySQL. Δεν χρησιμοποιώ xml mapping files.

πχ

@Entity
public class Employee{

@Id
private int employeeId

...
}

Δίνω την κλάση στο Hibernate το οποίο με Reflection εντοπίζει τα στοιχεία της κλάσης και την κάνει Persistant.

Quote
Τα νέα αρχεία που κάνουν map στο rdbms?

Καθότι τα αρχεία βρίσκονταί σε διαφορετικό ClassPath από αυτό της εφαρμογής ( στην οποία υπάρχουν τα Jar του Hibernate ) , welcome to ClassNotFoundException  Smiley. Ένώ μέσα από την main() (αυτή που ξεκινά από ScriptEngine ) μπορώ να κάνω reflect.
« Last Edit: October 08, 2010, 00:41:45 am by Issle » Logged

We can be a nation that believe in war,
And still tells the world that we don't.
Let the flag for hypocrisy fly high from every pole
We're a little bit country, and we're a little bit rock n' roll
Pages: [1] Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...