• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
September 23, 2025, 17:46:30 pm

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.
September 23, 2025, 17:46:30 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
[Σέρβο] Απορίες και ανακο...
by kav-liaris
[Today at 16:51:26]

[Τομέας Ενέργειας] Μαθήμα...
by chatzikys
[Today at 16:50:27]

Απορία για διπλωματικές
by telhs
[Today at 15:17:07]

Αποτελέσματα Εξεταστικής ...
by okan
[Today at 00:41:58]

Ρώτα κάτι τον επόμενο
by Nikos_313
[September 22, 2025, 21:41:15 pm]

Πότε θα βγει το μάθημα; -...
by Juror8
[September 22, 2025, 17:29:34 pm]

[Σήματα και Συστήματα] Γε...
by georkala
[September 22, 2025, 17:00:49 pm]

Πώληση Επίπλων (ντουλάπες...
by Karkarias
[September 22, 2025, 16:34:03 pm]

Ποιο τραγούδι ακούσατε 5+...
by Katarameno
[September 22, 2025, 02:31:40 am]

Μόνο λάθος απαντήσεις
by PolarBear
[September 21, 2025, 19:47:44 pm]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[September 21, 2025, 17:47:54 pm]

Δολοφονία "τοξικοεξαρτημέ...
by Katarameno
[September 21, 2025, 16:10:52 pm]

Μέλος του μήνα - Ιούλιος ...
by Nikos_313
[September 21, 2025, 10:05:25 am]

[Κεραίες Και Διάδοση] Γεν...
by Giopan
[September 20, 2025, 23:47:21 pm]

best username in THMMY.gr
by Katarameno
[September 20, 2025, 17:39:19 pm]

Πρόγραμμα Εξεταστικής Σεπ...
by Nikos_313
[September 20, 2025, 14:20:12 pm]

Ωρολόγιο Πρόγραμμα Χειμερ...
by Nikos_313
[September 20, 2025, 14:04:01 pm]

Aναζωπύρωση των εχθροπραξ...
by Katarameno
[September 18, 2025, 21:33:37 pm]

Ποιον πάροχο να επιλέξω?
by Nikos_313
[September 18, 2025, 20:41:30 pm]

[Οπτική] Να επιλέξω το μά...
by Nikostrim
[September 18, 2025, 05:05:26 am]
Στατιστικά
Members
Total Members: 10014
Latest: Jimana
Stats
Total Posts: 1428200
Total Topics: 31768
Online Today: 445
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 54
Guests: 135
Total: 189
miltan8
chriskazakos
Chrisapostol
matrozos
Gounanda
ellimoschou
tony123
filippovna
XristosGakidis
stefpapa21
Σουλης
Giorgosap
kouf
Saint_GR
akinous
AcDimitri
mike1996
adamchatz
Billyskotsikas
gdimove
Don Corleone
vagk
akoil
Hertz
kakousios
babis.o.sougias
tsaliki
alexiosmara
Natk
Giorgosklin
Napoleontas
Captain
asterisdemetris
melisste22
rafa98p
aris123321
hevidis3524
Giopan
Northern Eagle
G.V.
mor
stloukas
Denisivo
stavros0201
kmargaritis
chris123
Δημήτρης Γκαγκανάκης
RivenT
NickSpan
agapi
Εμφάνιση

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

Νέα!
Συμβουλές καλής χρήσης του φόρουμ: Youtube embed code and links, Shoutbox, Notify, ...
Δείτε περισσότερα εδώ...
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 1112 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...