Опытный
 
Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany
Репутация: нет Всего: 1
|
итак! Еще раз и по порядку. Вот так вот создается объект. Код | SaveParams saveParams = new SaveParams(); saveParams.setServerName(this.chessClient.getServerName()); // saveParams.setBoardMatrix(chessModel.matrixToArrayList()); saveParams.setNamePlayer1(this.chessModel.getPlayer1().getName()); saveParams.setNamePlayer2(this.chessModel.getPlayer2().getName()); saveParams.setPiecesColorPlayer1(this.chessModel.getPlayer1().getPiecesColor()); saveParams.setPiecesColorPlayer2(this.chessModel.getPlayer2().getPiecesColor()); saveParams.setMoveHystoryPlayer1(this.chessModel.getPlayer1().getMoveHystory()); saveParams.setMoveHystoryPlayer2(this.chessModel.getPlayer2().getMoveHystory());
ChessDao chessDao = new ChessDao(); chessDao.saveGame(saveParams);
|
Вот функция saveGame Код | public void saveGame(SaveParams saveParams) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.save(saveParams); session.getTransaction().commit(); }
|
Вот класс который хочу сохранить. Код | @Entity @Table(name="SaveParams") public class SaveParams { @Id @Column(name="serverName") private String serverName; //@Column(name="boardMatrix") private ArrayList boardMatrix; @Column(name="namePlayer1") private String namePlayer1; @Column(name="namePlayer2") private String namePlayer2; @Column(name="piecesColorPlayer1") private String piecesColorPlayer1; @Column(name="piecesColorPlayer2") private String piecesColorPlayer2; @ElementCollection @CollectionTable(name="moveHystoryPlayer11",joinColumns=@JoinColumn(name="serverName")) @Column(name="moveHystoryPlayer1") private ArrayList<String> moveHystoryPlayer1; @ElementCollection @CollectionTable(name="moveHystoryPlayer22",joinColumns=@JoinColumn(name="serverName")) @Column(name="moveHystoryPlayer2") private ArrayList<String> moveHystoryPlayer2; public SaveParams() { }
public String getServerName() { return serverName; }
public void setServerName(String serverName) { this.serverName = serverName; }
// public ArrayList getBoardMatrix() { // return boardMatrix; // } // // public void setBoardMatrix(ArrayList boardMatrix) { // this.boardMatrix = boardMatrix; // }
public String getNamePlayer1() { return namePlayer1; }
public void setNamePlayer1(String namePlayer1) { this.namePlayer1 = namePlayer1; }
public String getNamePlayer2() { return namePlayer2; }
public void setNamePlayer2(String namePlayer2) { this.namePlayer2 = namePlayer2; }
public String getPiecesColorPlayer1() { return piecesColorPlayer1; }
public void setPiecesColorPlayer1(String piecesColorPlayer1) { this.piecesColorPlayer1 = piecesColorPlayer1; }
public String getPiecesColorPlayer2() { return piecesColorPlayer2; }
public void setPiecesColorPlayer2(String piecesColorPlayer2) { this.piecesColorPlayer2 = piecesColorPlayer2; }
public ArrayList<String> getMoveHystoryPlayer1() { return moveHystoryPlayer1; }
public void setMoveHystoryPlayer1(ArrayList<String> moveHystoryPlayer1) { this.moveHystoryPlayer1 = moveHystoryPlayer1; }
public ArrayList<String> getMoveHystoryPlayer2() { return moveHystoryPlayer2; }
public void setMoveHystoryPlayer2(ArrayList<String> moveHystoryPlayer2) { this.moveHystoryPlayer2 = moveHystoryPlayer2; }
}
|
При первом сохранении база пустая, конф файл есть в одном из первых постов. сейчас валится ошибка при сохранении, уже хочет устанавливать связи. Нужно, не нужно? Код | 22:07:31,614 INFO Version:37 - Hibernate Commons Annotations 3.2.0.Final 22:07:31,623 INFO Environment:603 - Hibernate 3.6.10.Final 22:07:31,625 INFO Environment:636 - hibernate.properties not found 22:07:31,628 INFO Environment:814 - Bytecode provider name : javassist 22:07:31,630 INFO Environment:695 - using JDK 1.4 java.sql.Timestamp handling 22:07:31,676 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [uuid2] -> [class org.hibernate.id.UUIDGenerator] 22:07:31,677 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [guid] -> [class org.hibernate.id.GUIDGenerator] 22:07:31,679 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [uuid] -> [class org.hibernate.id.UUIDHexGenerator] 22:07:31,679 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [uuid.hex] -> [class org.hibernate.id.UUIDHexGenerator] 22:07:31,681 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [hilo] -> [class org.hibernate.id.TableHiLoGenerator] 22:07:31,682 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [assigned] -> [class org.hibernate.id.Assigned] 22:07:31,684 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [identity] -> [class org.hibernate.id.IdentityGenerator] 22:07:31,685 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [select] -> [class org.hibernate.id.SelectGenerator] 22:07:31,685 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [sequence] -> [class org.hibernate.id.SequenceGenerator] 22:07:31,686 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [seqhilo] -> [class org.hibernate.id.SequenceHiLoGenerator] 22:07:31,687 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [increment] -> [class org.hibernate.id.IncrementGenerator] 22:07:31,688 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [foreign] -> [class org.hibernate.id.ForeignGenerator] 22:07:31,689 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [sequence-identity] -> [class org.hibernate.id.SequenceIdentityGenerator] 22:07:31,690 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [enhanced-sequence] -> [class org.hibernate.id.enhanced.SequenceStyleGenerator] 22:07:31,691 DEBUG DefaultIdentifierGeneratorFactory:100 - Registering IdentifierGenerator strategy [enhanced-table] -> [class org.hibernate.id.enhanced.TableGenerator] 22:07:31,693 INFO Configuration:2156 - configuring from resource: /hibernate.cfg.xml 22:07:31,693 INFO Configuration:2175 - Configuration resource: /hibernate.cfg.xml 22:07:31,744 DEBUG DTDEntityResolver:67 - trying to resolve system-id [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd] 22:07:31,745 WARN DTDEntityResolver:73 - recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 22:07:31,745 DEBUG DTDEntityResolver:77 - attempting to resolve on classpath under org/hibernate/ 22:07:31,748 DEBUG DTDEntityResolver:109 - located [http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd] in classpath 22:07:31,776 DEBUG Configuration:2118 - connection.driver_class=com.mysql.jdbc.Driver 22:07:31,777 DEBUG Configuration:2118 - connection.url=jdbc:mysql://127.0.0.1:3306/chessdb 22:07:31,777 DEBUG Configuration:2118 - connection.username=root 22:07:31,777 DEBUG Configuration:2118 - connection.password=killer 22:07:31,778 DEBUG Configuration:2118 - dialect=org.hibernate.dialect.MySQLInnoDBDialect 22:07:31,778 DEBUG Configuration:2118 - connection.pool_size=2 22:07:31,779 DEBUG Configuration:2118 - current_session_context_class=thread 22:07:31,779 DEBUG Configuration:2118 - hibernate.hbm2ddl.auto=update 22:07:31,779 DEBUG Configuration:2118 - cache.provider_class=org.hibernate.cache.NoCacheProvider 22:07:31,780 DEBUG Configuration:2118 - show_sql=true 22:07:31,780 DEBUG Configuration:2363 - session-factory config [null] named class [chess.db.SaveParams] for mapping 22:07:31,788 INFO Configuration:2297 - Configured SessionFactory: null 22:07:31,788 DEBUG Configuration:2298 - properties: {show_sql=true, java.vendor=Sun Microsystems Inc., sun.java.launcher=SUN_STANDARD, hibernate.connection.url=jdbc:mysql://127.0.0.1:3306/chessdb, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, os.name=Windows 7, sun.boot.class.path=C:\Program Files\Java\jdk1.6.0_31\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_31\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_31\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_31\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_31\jre\lib\charsets.jar;C:\Program Files\Java\apache-tomcat-7.0.23-windows-x64\lib\servlet-api.jar, hibernate.current_session_context_class=thread, sun.desktop=windows, java.vm.specification.vendor=Sun Microsystems Inc., java.runtime.version=1.6.0_31-b05, hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider, user.name=JDev, connection.driver_class=com.mysql.jdbc.Driver, current_session_context_class=thread, user.language=ru, sun.boot.library.path=C:\Program Files\Java\jdk1.6.0_31\jre\bin, dialect=org.hibernate.dialect.MySQLInnoDBDialect, java.version=1.6.0_31, user.timezone=Europe/Berlin, sun.arch.data.model=64, java.endorsed.dirs=C:\Program Files\Java\jdk1.6.0_31\jre\lib\endorsed, sun.cpu.isalist=amd64, sun.jnu.encoding=Cp1251, file.encoding.pkg=sun.io, file.separator=\, java.specification.name=Java Platform API Specification, java.class.version=50.0, user.country=RU, connection.url=jdbc:mysql://127.0.0.1:3306/chessdb, java.home=C:\Program Files\Java\jdk1.6.0_31\jre, java.vm.info=mixed mode, os.version=6.1, path.separator=;, connection.password=killer, java.vm.version=20.6-b01, hibernate.connection.password=killer, user.variant=, java.awt.printerjob=sun.awt.windows.WPrinterJob, sun.io.unicode.encoding=UnicodeLittle, awt.toolkit=sun.awt.windows.WToolkit, hibernate.connection.username=root, user.home=C:\Users\JDev, java.specification.vendor=Sun Microsystems Inc., hibernate.hbm2ddl.auto=update, java.library.path=C:\Program Files\Java\jdk1.6.0_31\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Services\IPT\;C:\Program Files\PostgreSQL\9.1\bin;C:\Program Files\MySQL\MySQL Server 5.0\bin;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\MinGW\bin;C:\MinGw\msys\1.0\bin;C:\Program Files\Java\apache-maven-3.0.3\bin;C:\Program Files\Java\jdk1.6.0_31;C:\Program Files\Python27;;., java.vendor.url=http://java.sun.com/, hibernate.connection.driver_class=com.mysql.jdbc.Driver, connection.username=root, java.vm.vendor=Sun Microsystems Inc., hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect, java.runtime.name=Java(TM) SE Runtime Environment, sun.java.command=chess.main.Main, java.class.path=E:\Projects\Chess\Chess\bin;E:\Projects\Chess\Chess\lib\mysql-connector-java-3.1.14-bin.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\hibernate3.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\lib\required\antlr-2.7.6.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\lib\required\commons-collections-3.1.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\lib\required\dom4j-1.6.1.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\lib\required\javassist-3.12.0.GA.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\lib\required\jta-1.1.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\lib\required\slf4j-api-1.6.1.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\lib\bytecode\cglib\cglib-2.2.jar;C:\Program Files\Java\hibernate-annotations-3.4.0.GA\hibernate-annotations.jar;C:\Program Files\Java\hibernate-annotations-3.4.0.GA\lib\ejb3-persistence.jar;C:\Program Files\Java\hibernate-annotations-3.4.0.GA\lib\hibernate-commons-annotations.jar;C:\Program Files\Java\hibernate-annotations-3.4.0.GA\lib\test\log4j.jar;C:\Program Files\Java\slf4j-1.6.5\slf4j-log4j12-1.6.5.jar;C:\Program Files\Java\hibernate-distribution-3.6.10.Final\lib\jpa\hibernate-jpa-2.0-api-1.0.1.Final.jar;C:\Program Files\Java\hLib\mysqlJDBC-3.1.13.jar.txt;C:\Program Files\Java\hLib\javaee.jar.txt;C:\Program Files\Java\hLib\log4j-1.2.15.jar.txt, hibernate.bytecode.use_reflection_optimizer=false, java.vm.specification.name=Java Virtual Machine Specification, java.vm.specification.version=1.0, sun.cpu.endian=little, sun.os.patch.level=Service Pack 1, connection.pool_size=2, java.io.tmpdir=C:\Users\JDev\AppData\Local\Temp\, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, os.arch=amd64, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.ext.dirs=C:\Program Files\Java\jdk1.6.0_31\jre\lib\ext;C:\Windows\Sun\Java\lib\ext, user.dir=E:\Projects\Chess\Chess, line.separator= , java.vm.name=Java HotSpot(TM) 64-Bit Server VM, cache.provider_class=org.hibernate.cache.NoCacheProvider, file.encoding=Cp1251, java.specification.version=1.6, hibernate.show_sql=true, hibernate.connection.pool_size=2} 22:07:31,790 DEBUG Configuration:1854 - Preparing to build session factory with filters : {} 22:07:31,836 DEBUG Configuration:3995 - Processing hbm.xml files 22:07:31,836 DEBUG Configuration:4025 - Process annotated classes 22:07:31,841 INFO AnnotationBinder:532 - Binding entity from annotated class: chess.db.SaveParams 22:07:31,867 DEBUG Ejb3Column:192 - Binding column: Ejb3DiscriminatorColumn{logicalColumnName'DTYPE', discriminatorTypeName='string'} 22:07:31,870 DEBUG AnnotationBinder:1019 - no value specified for 'javax.persistence.sharedCache.mode'; using UNSPECIFIED 22:07:31,877 DEBUG EntityBinder:364 - Import with entity name SaveParams 22:07:31,881 INFO EntityBinder:530 - Bind entity chess.db.SaveParams on table SaveParams 22:07:31,928 DEBUG Ejb3Column:192 - Binding column: Ejb3Column{table=org.hibernate.mapping.Table(SaveParams), mappingColumn=serverName, insertable=true, updatable=true, unique=false} 22:07:31,936 DEBUG PropertyBinder:175 - binding property serverName with lazy=false 22:07:31,938 DEBUG SimpleValueBinder:303 - building SimpleValue for serverName 22:07:31,940 DEBUG PropertyBinder:255 - Building property serverName 22:07:31,946 DEBUG Ejb3Column:192 - Binding column: Ejb3Column{table=org.hibernate.mapping.Table(SaveParams), mappingColumn=moveHystoryPlayer1, insertable=true, updatable=true, unique=false} 22:07:31,948 DEBUG Ejb3Column:192 - Binding column: Ejb3JoinColumn{logicalColumnName='null', referencedColumn='null', mappedBy=''} 22:07:31,950 DEBUG Ejb3Column:192 - Binding column: Ejb3Column{table=org.hibernate.mapping.Table(SaveParams), mappingColumn=null, insertable=true, updatable=true, unique=false} Initial SessionFactory creation failed.org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: chess.db.SaveParams.moveHystoryPlayer1 Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError at chess.db.HibernateUtil.<clinit>(HibernateUtil.java:18) at chess.dao.ChessDao.saveGame(ChessDao.java:19) at chess.network.ChessGUINetwork_Controller.actionPerformed(ChessGUINetwork_Controller.java:59) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6290) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6055) at java.awt.Container.processEvent(Container.java:2039) at java.awt.Component.dispatchEventImpl(Component.java:4653) at java.awt.Container.dispatchEventImpl(Container.java:2097) at java.awt.Component.dispatchEvent(Component.java:4481) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166) at java.awt.Container.dispatchEventImpl(Container.java:2083) at java.awt.Window.dispatchEventImpl(Window.java:2482) at java.awt.Component.dispatchEvent(Component.java:4481) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:648) at java.awt.EventQueue.access$000(EventQueue.java:84) at java.awt.EventQueue$1.run(EventQueue.java:607) at java.awt.EventQueue$1.run(EventQueue.java:605) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:621) at java.awt.EventQueue$2.run(EventQueue.java:619) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:618) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Caused by: org.hibernate.AnnotationException: Illegal attempt to map a non collection as a @OneToMany, @ManyToMany or @CollectionOfElements: chess.db.SaveParams.moveHystoryPlayer1 at org.hibernate.cfg.annotations.CollectionBinder.getCollectionBinder(CollectionBinder.java:324) at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1723) at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:796) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:4035) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3989) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1398) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1856) at chess.db.HibernateUtil.<clinit>(HibernateUtil.java:14) ... 38 more
|
Вот и все. Очень надеюсь на вашу помощь!!!
|