Zum Inhalt springen

ciD4r

Mitglieder
  • Gesamte Inhalte

    9
  • Benutzer seit

  • Letzter Besuch

  1. also ums mal auf gut deutsch zu sagen ist des mit meinen kenntnissen einfach nicht möglich mit java umzusetzen und die einarbeitung in dieses fachwissen ist ebenfalls nicht in kurzer zeit möglich, richtig?
  2. hmm, ich denke mir würde es ausreichen nur die bytes zu verwenden, aber wie bekomm ich die infos da draus, also wann die melodie schneller, wann langsamer, oder höher und tiefer wird?
  3. enschuldigung wegen dem push, dacht mir nur, dass ja sonst nie jemand antwortet... also wie gesagt möcht ich z.b. immer wenn hohe töne kommen eine sparte farben wiedergeben und wenn niedrige töne kommen ne andere sparte farben. wäre des dann dein zweiter vorschlag? ganz ehrlich gesagt sagen mir die beiden sache nichts, welche du vorgeschlagen hast. was ist denn dann genau des, wonach ich mich informieren muss? ist des jmf?
  4. Push hat denn keiner ne idee?
  5. Guten Abend alle zusammen, ich hab mir vorgenommen ein Programm zu schreiben, welches ähnlich dem von Winamp oder anderen Audiowiedergabeprogrammen ist, allerdings nicht so umfangreich. Ich möchte erstmal nur Audiofiles wiedergeben und eine Visualisierung erstellen. Die Visualisierung soll im Endeffekt das Wechseln von Farben auf dem Desktophintergrund darstellen. So einmal der grobe Ansatz. Nun meine Fragen: Ist es auf der einen Seite irgendwie möglich, dass ich die Audiofiles so analysiere, damit z.b. Höhen und Tiefen im Lied, oder auch die Geschwindigkeit dazu benutzen kann, dementsprechend die Farben zu wechseln? Also schnelles Lied = häufiger Farbwechsel oder dumpfe Musik = dunkle Farben. Wenn ja, was würde mir da in Java helfen? JMF? Es wäre schön wenn ihr da schon was wüsstet, damit ich mich mal ein bisschen dann darüber informieren kann. Ist es überhaupt möglich des ganze als Desktophintergrund auszugeben, oder muss ichs z.b. in nem extra Fenster machen? So, ich hoffe mir kann geholfen werden, aber bei den kompetenten Leuten hier mach ich mir keine Sorgen Vielen vielen vielen Dank!!! Gruß Andy
  6. ciD4r

    Hibernate macht Probleme

    Hallo, tut mir leid, des mit den Code Tags ist irgendwie an mir vorbeigegangen. Mitlerweile läuft mein Hibernate ganz gut. Ich komm zwar recht schleppend vorran, aber es wird immer besser. Nun hab ich eine einfache Frage. Wenn ich ein Objekt habe, und in diesem möchte ich eine ArrayList mit Strings speichern, wie mach ich des? Also mit dem Mapping mein ich. Hab ich da wirklich nur die Möglichkeit mir ne eigene Klasse für diese ArrayList mit nem String, ner ID und nem Objekt von dem gemappt wird, zu definieren? Oder kann ich des auch einfacher lösen. Vielen Dank schonmal im vorraus Andy
  7. ciD4r

    Hibernate macht Probleme

    So, da mein Hibernatebeispiel irgendwie garnet funktioniert hab ich mir gedacht, dass ichs mal abspecke und nacheinander versuche es aufzubauen. Jetzt hab ich fast garnix mehr drin, und es läuft trotzdem nix. Des macht mich noch ganz kirre!!! ich weiß einfach nicht woran des liegt und im Internet find ich auch nix. Sitzt jetzt schon über 8 Stunden an dem Problem... Erbitte mal wieder um Hilfe;) Also mal wieder die Exception: 11:58:15,531 INFO Version:15 - Hibernate Annotations 3.3.0.GA 11:58:15,551 INFO Environment:514 - Hibernate 3.2.4 11:58:15,551 INFO Environment:547 - hibernate.properties not found 11:58:15,561 INFO Environment:681 - Bytecode provider name : cglib 11:58:15,561 INFO Environment:598 - using JDK 1.4 java.sql.Timestamp handling 11:58:15,651 INFO Configuration:1426 - configuring from resource: /hibernate.cfg.xml 11:58:15,651 INFO Configuration:1403 - Configuration resource: /hibernate.cfg.xml 11:58:15,761 INFO Configuration:1541 - Configured SessionFactory: null 11:58:15,831 INFO AnnotationBinder:398 - Binding entity from annotated class: klassen.Gericht 11:58:15,871 INFO EntityBinder:420 - Bind entity klassen.Gericht on table Gericht 11:58:15,941 INFO AnnotationConfiguration:350 - Hibernate Validator not found: ignoring 11:58:16,062 INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!) 11:58:16,062 INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 20 11:58:16,062 INFO DriverManagerConnectionProvider:45 - autocommit mode: false 11:58:16,072 INFO DriverManagerConnectionProvider:80 - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/dharma 11:58:16,072 INFO DriverManagerConnectionProvider:86 - connection properties: {user=root, password=****} 11:58:16,382 INFO SettingsFactory:89 - RDBMS: MySQL, version: 5.1.45-community 11:58:16,382 INFO SettingsFactory:90 - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.9 ( Revision: ${svn.Revision} ) 11:58:16,402 INFO Dialect:152 - Using dialect: org.hibernate.dialect.MySQLDialect 11:58:16,402 INFO TransactionFactoryFactory:34 - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory 11:58:16,402 INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 11:58:16,402 INFO SettingsFactory:143 - Automatic flush during beforeCompletion(): disabled 11:58:16,402 INFO SettingsFactory:147 - Automatic session close at end of transaction: enabled 11:58:16,402 INFO SettingsFactory:154 - JDBC batch size: 15 11:58:16,402 INFO SettingsFactory:157 - JDBC batch updates for versioned data: disabled 11:58:16,402 INFO SettingsFactory:162 - Scrollable result sets: enabled 11:58:16,402 INFO SettingsFactory:170 - JDBC3 getGeneratedKeys(): enabled 11:58:16,402 INFO SettingsFactory:178 - Connection release mode: auto 11:58:16,412 INFO SettingsFactory:202 - Maximum outer join fetch depth: 2 11:58:16,412 INFO SettingsFactory:205 - Default batch fetch size: 1 11:58:16,412 INFO SettingsFactory:209 - Generate SQL with comments: disabled 11:58:16,412 INFO SettingsFactory:213 - Order SQL updates by primary key: disabled 11:58:16,412 INFO SettingsFactory:217 - Order SQL inserts for batching: disabled 11:58:16,412 INFO SettingsFactory:386 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 11:58:16,412 INFO ASTQueryTranslatorFactory:24 - Using ASTQueryTranslatorFactory 11:58:16,412 INFO SettingsFactory:225 - Query language substitutions: {} 11:58:16,412 INFO SettingsFactory:230 - JPA-QL strict compliance: disabled 11:58:16,422 INFO SettingsFactory:235 - Second-level cache: enabled 11:58:16,422 INFO SettingsFactory:239 - Query cache: disabled 11:58:16,422 INFO SettingsFactory:373 - Cache provider: org.hibernate.cache.EhCacheProvider Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [klassen.Gericht] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2158) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2638) at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301) at $Proxy7.save(Unknown Source) at klassen.TestExample.createGericht(TestExample.java:77) at klassen.TestExample.main(TestExample.java:34) Caused by: java.sql.SQLException: No value specified for parameter 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2513) at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2489) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2336) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2280) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2265) at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:73) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33) ... 23 more 11:58:16,422 INFO SettingsFactory:254 - Optimize cache for minimal puts: disabled 11:58:16,422 INFO SettingsFactory:263 - Structured second-level cache entries: disabled 11:58:16,422 INFO SettingsFactory:283 - Echoing all SQL to stdout 11:58:16,422 INFO SettingsFactory:290 - Statistics: disabled 11:58:16,422 INFO SettingsFactory:294 - Deleted entity synthetic identifier rollback: disabled 11:58:16,432 INFO SettingsFactory:309 - Default entity-mode: pojo 11:58:16,432 INFO SettingsFactory:313 - Named query checking : enabled 11:58:16,452 INFO SessionFactoryImpl:161 - building session factory 11:58:16,502 DEBUG CacheManager:239 - Configuring ehcache from classpath. 11:58:16,512 WARN ConfigurationFactory:127 - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/C:/Dokumente%20und%20Einstellungen/Administrator/.m2/repository/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar!/ehcache-failsafe.xml 11:58:16,512 DEBUG ConfigurationFactory:87 - Configuring ehcache from URL: jar:file:/C:/Dokumente%20und%20Einstellungen/Administrator/.m2/repository/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar!/ehcache-failsafe.xml 11:58:16,522 DEBUG ConfigurationFactory:139 - Configuring ehcache from InputStream 11:58:16,552 DEBUG DiskStoreConfiguration:65 - Disk Store Path: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\ 11:58:16,562 DEBUG ConfigurationHelper:208 - No CacheManagerEventListenerFactory class specified. Skipping... 11:58:16,562 DEBUG ConfigurationHelper:183 - No CachePeerListenerFactoryConfiguration specified. Not configuring a CacheManagerPeerListener. 11:58:16,562 DEBUG ConfigurationHelper:159 - No CachePeerProviderFactoryConfiguration specified. Not configuring a CacheManagerPeerProvider. 11:58:16,642 DEBUG ConfigurationHelper:135 - No BootstrapCacheLoaderFactory class specified. Skipping... 11:58:16,863 INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured 11:58:16,873 INFO AnnotationConfiguration:350 - Hibernate Validator not found: ignoring 11:58:16,873 INFO AnnotationConfiguration:350 - Hibernate Validator not found: ignoring 11:58:16,873 INFO SchemaExport:154 - Running hbm2ddl schema export 11:58:16,873 INFO SchemaExport:179 - exporting generated schema to database 11:58:16,873 ERROR SchemaExport:274 - Unsuccessful: create table Gericht (name varchar(255) not null auto_increment, primary key (name)) 11:58:16,873 ERROR SchemaExport:275 - Incorrect column specifier for column 'name' 11:58:16,873 INFO SchemaExport:196 - schema export complete Hibernate: insert into Gericht (name) values (?) com.mysql.jdbc.JDBC4PreparedStatement@55d93d: insert into Gericht (name) values (** NOT SPECIFIED **) 11:58:16,973 WARN JDBCExceptionReporter:77 - SQL Error: 0, SQLState: 07001 11:58:16,973 ERROR JDBCExceptionReporter:78 - No value specified for parameter 1 hibernate.cfg.xml: <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- MySQL connection --> <property name="connection.url">jdbc:mysql://localhost:3306/dharma</property> <property name="connection.username">root</property> <property name="connection.password">swep</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- thread is the short name for org.hibernate.context.ThreadLocalSessionContext and let Hibernate bind the session automatically to the thread --> <property name="cache.provider_class"> org.hibernate.cache.EhCacheProvider </property> <property name="current_session_context_class">thread</property> <property name="hibernate.transaction.factory_class"> org.hibernate.transaction.JDBCTransactionFactory </property> <!-- this will show us all sql statements --> <property name="show_sql">true</property> <property name="transaction.auto_close_session">true</property> <!-- this will create the database tables for us --> <property name="hibernate.hbm2ddl.auto">create</property> <mapping class="klassen.Gericht" /> </session-factory> </hibernate-configuration> InitSessionFactory: package hibernate; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; public class InitSessionFactory { /** The single instance of hibernate SessionFactory */ private static org.hibernate.SessionFactory sessionFactory; /** * Default constructor. It is private to guaranty singleton */ private InitSessionFactory() { } static { final AnnotationConfiguration cfg = new AnnotationConfiguration(); /* * configure Hibernate from hibernate.cfg.xml. This is expected to be in * the class path = "src folder" = "root folder of classes" */ cfg.configure("/hibernate.cfg.xml"); sessionFactory = cfg.buildSessionFactory(); } /** * Returns the single instance of the session factory * @return */ public static SessionFactory getInstance() { return sessionFactory; } } Klasse Gericht: package klassen; import java.io.Serializable; import java.text.MessageFormat; import java.util.HashSet; import java.util.Set; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.SequenceGenerator; @Entity @SequenceGenerator(name = "gericht_seq", sequenceName = "gericht_id_seq") public class Gericht implements Serializable { //private static final long serialVersionUID = 6789761254603569794L; @Id @GeneratedValue(strategy=GenerationType.AUTO) private String name; public Gericht() { super(); } @Override public String toString() { return MessageFormat.format ("Gericht: {0}", new Object[]{name}); } public String getName() { return name; } public void setName(String name) { this.name = name; } } TestExample: package klassen; import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import org.hibernate.Criteria; import org.hibernate.FetchMode; import org.hibernate.Hibernate; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.transform.DistinctRootEntityResultTransformer; import hibernate.InitSessionFactory; public class TestExample { private static Logger log = Logger.getLogger(TestExample.class); public static void main(String[] args) { try { /* clean tables */ //clean(); /* simple create example */ createGericht(); /* relation example */ //createRelation(); /* delete example */ //delete(); /* update example */ //update(); /* query example */ //query(); /* show how to initialize data */ //initKommentare(); } catch (RuntimeException e) { /* * we must take care to rollback all transaction and to close the * session after an exception has occured. <pre> The session is * closed by our configuration, when we rollback the session. See * current_session_context </pre> */ try { Session session = InitSessionFactory.getInstance() .getCurrentSession(); if (session.getTransaction().isActive()) session.getTransaction().rollback(); } catch (HibernateException e1) { log.error("Error rolling back transaction"); } // throw the exception again throw e; } } private static Gericht createGericht() { Gericht gericht= new Gericht(); gericht.setName("Sauerbraten"); Session session = InitSessionFactory.getInstance().getCurrentSession(); Transaction tx = session.beginTransaction(); session.save(gericht); tx.commit(); return gericht; } }
  8. ciD4r

    Hibernate macht Probleme

    Ja super! Danke schonmal für die schnelle Hilfe!!!!! so, von der Fehlermeldung komm ich gleich zur nächsten Der schimpft über mein mapping. Aber ich kann den grund nicht verstehen. Ich hab die hibernate.cfg.xml mal anders geschrieben, wegen dem vorherigen Problem. Nun meckert er dies hier: ... 9:09:17,706 INFO AnnotationBinder:398 - Binding entity from annotated class: klassen.Kommentar 19:09:17,756 INFO EntityBinder:420 - Bind entity klassen.Kommentar on table Kommentar Exception in thread "main" java.lang.ExceptionInInitializerError at klassen.TestExample.createGericht(TestExample.java:200) at klassen.TestExample.main(TestExample.java:34) Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on klassen.Kommentar.gericht references an unknown entity: klassen.Gericht at org.hibernate.cfg.FkSecondPass.doSecondPass(FkSecondPass.java:56) at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:474) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:295) ... Die Klassen haben sich nicht verändert. ist quasi noch so wie oben gepostet. Warum meckert er da rum? Ich hab doch geschrieben: @ManyToOne @JoinColumn private Gericht gericht; Des müsste doch funktionieren, oder? Oder gibts da Probleme mit dem Array? Dass ich des irgendwie falsch gemappt hab? Nochmals vielen Dank für die Hilfe!!!!!!!!!!! Andy
  9. Hallo erstmal, ich bin neu hier und hoffe, dass ich mein Thema an die richtige Stelle gepackt habe. Ich hab auch schon die Suche benutzt, aber nichts richtiges gefunden. Ich hab ein Problem mit Hibernate. Ich hab grad versucht mein erstes Tutorial umzuschreiben auf meine Klassen. Selbstverständlich erstmal einfach:D Ich hab das erste Beispiel aus dem Buch: "Hibernate - Das Praxisbuch für Entwickler" benutzt. Ich hab verschiedene Sachen umgeschrieben und bekomm jetzt ne Fehlermeldung. Also funktionieren tut noch nix. Nunja, ich hab eigentlich alles wie im Tutorial gemacht, nur einzelne Sachen umgeschrieben. Hier kommt mal zuerst die Fehlermeldung: 21:47:28,349 INFO Version:15 - Hibernate Annotations 3.3.0.GA 21:47:28,369 INFO Environment:514 - Hibernate 3.2.4 21:47:28,369 INFO Environment:547 - hibernate.properties not found 21:47:28,369 INFO Environment:681 - Bytecode provider name : cglib 21:47:28,379 INFO Environment:598 - using JDK 1.4 java.sql.Timestamp handling 21:47:28,439 INFO Configuration:1426 - configuring from resource: /hibernate.cfg.xml 21:47:28,439 INFO Configuration:1403 - Configuration resource: /hibernate.cfg.xml 21:47:28,539 INFO Configuration:553 - Reading mappings from resource : contact.hbm.xml Exception in thread "main" java.lang.ExceptionInInitializerError at klassen.TestExample.createGericht(TestExample.java:200) at klassen.TestExample.main(TestExample.java:34) Caused by: org.hibernate.MappingNotFoundException: resource: contact.hbm.xml not found at org.hibernate.cfg.Configuration.addResource(Configuration.java:563) at org.hibernate.cfg.AnnotationConfiguration.parseMappingElement(AnnotationConfiguration.java:581) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508) at org.hibernate.cfg.Configuration.configure(Configuration.java:1428) at hibernate.InitSessionFactory.<clinit>(InitSessionFactory.java:30) ... 2 more nun die Hibernate.cfg: <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Driver class --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- Connection --> <property name="connection.url">jdbc:mysql://localhost/dharma</property> <!-- Benutzerdaten --> <property name="connection.username">root</property> <property name="connection.password">swep</property> <!-- MySQL Dialect --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> <property name="current_session_context_class">thread</property> <!-- update database if necessary --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- show SQLStaetement on console --> <property name="hibernate.show_sql">true</property> <mapping resource="contact.hbm.xml" /> </session-factory> </hibernate-configuration> Klasse Gericht: package klassen; import java.io.Serializable; import java.text.MessageFormat; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.SequenceGenerator; import org.hibernate.annotations.Entity; @Entity @SequenceGenerator(name = "gericht_seq", sequenceName = "gericht_id_seq") public class Gericht implements Serializable { @Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="gericht_seq") private String name; private int gerichtID; private int gutcount; private int schlechtcount; @OneToMany(mappedBy="gericht") private Kommentar[] array; public Gericht() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getGerichtID() { return gerichtID; } public void setGerichtID(int gerichtID) { this.gerichtID = gerichtID; } public int getGutcount() { return gutcount; } public void setGutcount(int gutcount) { this.gutcount = gutcount; } public int getSchlechtcount() { return schlechtcount; } public void setSchlechtcount(int schlechtcount) { this.schlechtcount = schlechtcount; } public Kommentar[] getArray() { return array; } public void setArray(Kommentar[] array) { this.array = array; } public String toString() { return MessageFormat.format ("Gericht: {0} {1} {2} {3}", new Object[]{name, gerichtID, gutcount, schlechtcount}); } } Klasse Kommentar: package klassen; import java.io.Serializable; import java.text.MessageFormat; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.SequenceGenerator; @Entity public class Kommentar implements Serializable { @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="Kommentar_gen") @SequenceGenerator(name="Kommentar_gen", sequenceName="Kommentar_id_seq") private int kommentarID; private String kommentar; @ManyToOne @JoinColumn private Gericht gericht; public Kommentar() { } public Kommentar (String kommentar) { this.kommentar = kommentar; } public int getKommentarID() { return kommentarID; } public void setKommentarID(int kommentarID) { this.kommentarID = kommentarID; } public Gericht getGericht() { return gericht; } public void setGericht(Gericht gericht) { this.gericht = gericht; } public String toString() { return MessageFormat.format ("{0}: kommentarID={1}, kommentar={2}", new Object[] {getClass().getSimpleName(), kommentarID, kommentar}); } } Klasse Testexample: /** * Test application for example * @author Sebastian Hennebrueder * created Jan 16, 2006 * copyright 2007 by Laliluna.de */ package klassen; import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import org.hibernate.Criteria; import org.hibernate.FetchMode; import org.hibernate.Hibernate; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.transform.DistinctRootEntityResultTransformer; import hibernate.InitSessionFactory; public class TestExample { private static Logger log = Logger.getLogger(TestExample.class); public static void main(String[] args) { try { /* clean tables */ //clean(); /* simple create example */ createGericht(); /* relation example */ createRelation(); /* delete example */ delete(); /* update example */ update(); /* query example */ query(); /* show how to initialize data */ initKommentare(); } catch (RuntimeException e) { /* * we must take care to rollback all transaction and to close the * session after an exception has occured. <pre> The session is * closed by our configuration, when we rollback the session. See * current_session_context </pre> */ try { Session session = InitSessionFactory.getInstance() .getCurrentSession(); if (session.getTransaction().isActive()) session.getTransaction().rollback(); } catch (HibernateException e1) { log.error("Error rolling back transaction"); } // throw the exception again throw e; } } /** * creates and updates a honey */ private static void update() { Gericht honey = createGericht(); Session session = InitSessionFactory.getInstance().getCurrentSession(); Transaction tx = session.beginTransaction(); honey.setName("Schweinzsulzn"); session.update(honey); tx.commit(); } /** * creates a honey and deletes it afterwards */ private static void delete() { Gericht honey = createGericht(); Session session = InitSessionFactory.getInstance().getCurrentSession(); Transaction tx = session.beginTransaction(); session.delete(honey); tx.commit(); } /** * deletes all bees and honeys. */ private static void clean() { Session session = InitSessionFactory.getInstance().getCurrentSession(); Transaction tx = session.beginTransaction(); session.createQuery("delete from Kommentar").executeUpdate(); session.createQuery("delete from Gericht").executeUpdate(); session.flush(); session.clear(); tx.commit(); } /** * create a Honey and a Bee and a relation beween them */ private static void createRelation() { Session session = InitSessionFactory.getInstance().getCurrentSession(); Transaction tx = session.beginTransaction(); Gericht gericht = new Gericht(); gericht.setName("Erdbeerstrudl"); gericht.setGerichtID(12); session.save(gericht); Kommentar kommentar = new Kommentar("Des wor a goschtige Soch!!!"); session.save(kommentar); /* create the relation on both sides */ kommentar.setGericht(gericht); Kommentar[] array = gericht.getArray(); for (int i=0; i<array.length; i++) { if (array instanceof Kommentar) { System.out.println(""+i); } else { array = kommentar; gericht.setArray(array); } } /*urspruenglich mit hashset * * gericht.getArray().add(kommentar); */ tx.commit(); } /** * Find and list Honey entries in the database */ private static void query() { Session session = InitSessionFactory.getInstance().getCurrentSession(); Transaction tx = session.beginTransaction(); List honeys = session.createQuery("select h from Honey as h").list(); for (Iterator iter = honeys.iterator(); iter.hasNext() { Gericht element = (Gericht) iter.next(); log.debug(element); } tx.commit(); } /** * load Gericht and init Kommentare */ private static void initKommentare() { Session session = InitSessionFactory.getInstance().getCurrentSession(); // appraoch a) generates 1 additional query for each Gericht Transaction tx = session.beginTransaction(); List gerichte = session.createQuery("select h from Gericht as h").list(); for (Iterator iter = gerichte.iterator(); iter.hasNext() { Gericht element = (Gericht) iter.next(); log.debug(element); Hibernate.initialize(element.getArray()); } // appraoch generates 1 query with a join gerichte = session.createQuery( "select h from Gericht as h left join fetch h.Kommentare") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); session.createCriteria(Gericht.class) .setFetchMode("Kommentare", FetchMode.JOIN).setResultTransformer( Criteria.DISTINCT_ROOT_ENTITY).list(); tx.commit(); } /** * Creates a gericht object * * @return a fresh created Gericht */ private static Gericht createGericht() { Gericht gericht= new Gericht(); gericht.setName("Sauerbraten"); gericht.setGerichtID(14); Session session = InitSessionFactory.getInstance().getCurrentSession(); Transaction tx = session.beginTransaction(); session.save(gericht); tx.commit(); return gericht; } } Klasse InitSessionFactory: package hibernate; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; public class InitSessionFactory { /** The single instance of hibernate SessionFactory */ private static org.hibernate.SessionFactory sessionFactory; /** * Default constructor. It is private to guaranty singleton */ private InitSessionFactory() { } static { final AnnotationConfiguration cfg = new AnnotationConfiguration(); /* * configure Hibernate from hibernate.cfg.xml. This is expected to be in * the class path = "src folder" = "root folder of classes" */ cfg.configure("/hibernate.cfg.xml"); sessionFactory = cfg.buildSessionFactory(); } /** * Returns the single instance of the session factory * @return */ public static SessionFactory getInstance() { return sessionFactory; } } So, ich weiß leider nicht wo der Fehler liegt und würde mich sehr freuen, wenn jemand mal drüberschauen könnte, und mir sagt, was mein/e Fehler ist/sind. Da ich absoluter Anfänger bin in Sachen Hibernate bitte ich um Nachsicht:D Vielen Dank schonmal im vorraus!!! Andy

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...