 |
上一主题
我在JBuilder8中配置WebLogic8.1出错,因为没有8.1可以选择所以我选的是7,然后在指定Bea Home Directory时出错。
提示说registry.xml does not..
|
|
下一主题
各位大虾:
现在有个关于hibernate多主键的问题,请指教:
一个表Result,有两个主键,分别是customerId,setDate,用Middlegen Hibernate plugin..
|
|
|
|
|
|
|
|
Hibernate Blob 操作问题!
|
2003年08月25日 15:54
|
|
|
|
数据库是ORACLE8.15,现在现象是好像一切都正常,日志也正常,可是数据库中始终没有数据,大大帮帮忙阿!
对应的JAVA文件和HBM如下
package com.sunix;
import java.io.Serializable; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import java.sql.Blob; /** @author Hibernate CodeGenerator */ public class Blobtest implements Serializable {
/** identifier field */ private String bid;
/** nullable persistent field */ private Blob bcontent;
/** full constructor */ public Blobtest(Blob bcontent) { this.bcontent = bcontent; }
/** default constructor */ public Blobtest() { }
public java.lang.String getBid() { return this.bid; }
public void setBid(java.lang.String bid) { this.bid = bid; }
public Blob getBcontent() { return this.bcontent; }
public void setBcontent(Blob bcontent) { this.bcontent = bcontent; }
public String toString() { return new ToStringBuilder(this) .append("bid", getBid()) .toString(); }
public boolean equals(Object other) { if ( !(other instanceof Blobtest) ) return false; Blobtest castOther = (Blobtest) other; return new EqualsBuilder() .append(this.getBid(), castOther.getBid()) .isEquals(); }
public int hashCode() { return new HashCodeBuilder() .append(getBid()) .toHashCode(); }
}
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="com.sunix.Blobtest" schema="LIUXU" table="BLOBTEST"> <id column="BID" name="bid" type="string"> <generator class="uuid.string"/> </id> <property column="BCONTENT" name="bcontent" type="blob"/> </class> </hibernate-mapping>
管理SESSION的那个就不贴了,是从LIFERAY里COPY出来的 下面这个是用来写Blob的类 package com.sunix; import net.sf.hibernate.HibernateException; import net.sf.hibernate.Session; import net.sf.hibernate.*; import net.sf.hibernate.SessionFactory; import net.sf.hibernate.cfg.Configuration; import com.sunix.Blobtest; import com.sunix.hibernate.*;
public class testBlob { private Session session=null; public testBlob() { } public void add(String _content){ try{ session=hibernatesession.openSession(); Blobtest bt=new Blobtest(); //之所以这么写BLOB是因为我在Hibernate的TEST的原码中看到的 bt.setBcontent(Hibernate.createBlob(_content.getBytes())); session.save(bt); session.flush(); }catch(Exception ex){ ex.printStackTrace(); System.out.println(ex.getMessage()); } finally { Hibernatesession.closeSession(session); }
} }
日志:
2003-8-25 15:51:44 net.sf.hibernate.cfg.Environment <clinit>
信息: using java.io streams to persist binary types
2003-8-25 15:51:44 net.sf.hibernate.cfg.Environment <clinit>
信息: using CGLIB reflection optimizer
2003-8-25 15:51:44 net.sf.hibernate.cfg.Environment <clinit>
信息: JVM proxy support: true
2003-8-25 15:51:44 net.sf.hibernate.cfg.Configuration addClass
信息: Mapping resource: com/sunix/Blobtest.hbm.xml
2003-8-25 15:51:45 net.sf.hibernate.cfg.Binder bindRootClass
信息: Mapping class: com.sunix.Blobtest -> BLOBTEST
2003-8-25 15:51:46 net.sf.hibernate.cfg.Configuration secondPassCompile
信息: processing one-to-many association mappings
2003-8-25 15:51:46 net.sf.hibernate.cfg.Configuration secondPassCompile
信息: processing one-to-one association property references
2003-8-25 15:51:46 net.sf.hibernate.cfg.Configuration secondPassCompile
信息: processing foreign key constraints
2003-8-25 15:51:46 net.sf.hibernate.impl.SessionFactoryImpl <init>
信息: building session factory
2003-8-25 15:51:46 net.sf.hibernate.dialect.Dialect <init>
信息: Using dialect: net.sf.hibernate.dialect.OracleDialect
2003-8-25 15:51:46 net.sf.hibernate.cfg.SettingsFactory buildSettings
信息: Use outer join fetching: true
2003-8-25 15:51:46 net.sf.hibernate.connection.DriverManagerConnectionProvider configure
信息: Hibernate connection pool size: 20
2003-8-25 15:51:47 net.sf.hibernate.cfg.SettingsFactory buildSettings
信息: Use scrollable result sets: true
2003-8-25 15:51:47 net.sf.hibernate.cfg.SettingsFactory buildSettings
信息: JDBC 2 max batch size: 15
2003-8-25 15:51:47 net.sf.hibernate.cfg.SettingsFactory buildSettings
信息: echoing all SQL to stdout
2003-8-25 15:51:47 net.sf.hibernate.cfg.SettingsFactory buildSettings
信息: Query language substitutions: {}
2003-8-25 15:51:47 net.sf.hibernate.ps.PreparedStatementCache <init>
信息: prepared statement cache size: 6
2003-8-25 15:51:48 net.sf.hibernate.impl.SessionFactoryObjectFactory addInstance
信息: no JNDI name configured
Hibernate: insert into ll.BLOBTEST (BCONTENT, BID) values (?, ?)
|
|
|
|
|
|
Re: Hibernate Blob 操作问题!
|
2003年08月25日 15:56
|
|
|
为什么看不到XML?再贴: <class name="com.sunix.Blobtest" schema="LIUXU" table="BLOBTEST"> <id column="BID" name="bid" type="string"> <generator class="uuid.string"/> </id> <property column="BCONTENT" name="bcontent" type="blob"/> </class>
|
|
|
|
|
|
Re: Hibernate Blob 操作问题!
|
2003年08月25日 15:56
|
|
|
为什么看不到XML?再贴: <class name="com.sunix.Blobtest" schema="ll" table="BLOBTEST"> <id column="BID" name="bid" type="string"> <generator class="uuid.string"/> </id> <property column="BCONTENT" name="bcontent" type="blob"/> </class>
|
|
|
|
|
|
Re: Hibernate Blob 操作问题!
|
2003年08月25日 15:58
|
|
|
<property column="BCONTENT" name="bcontent" type="blob"/> 其他不管了,这个是关键部分,看看能显示不?
|
|
|
|
|
|
Re: Hibernate Blob 操作问题!
|
2003年08月25日 15:59
|
|
|
我555~什么论坛阿,又不能编辑,又不能删除,XML贴上来怎么也看不到
|
|
|
|
|
|
Re: Hibernate Blob 操作问题!
|
2003年08月25日 16:34
|
|
|
|
http://hibernate.bluemars.net/56.html
|
|
|
|
|
|
Re: Hibernate Blob 操作问题!
|
2003年08月25日 17:07
|
|
|
我真弱阿,其实到了Hibernate里面,操作ORACLE的BLOB和CLOB应该是跟JDBC一样的步骤, 1。建立一个新的空记录; 2.加入内容
可是你看他TEST里的例子 public void testBlobClob() throws Exception { if ( dialect instanceof MySQLDialect || dialect instanceof PostgreSQLDialect || dialect instanceof HSQLDialect ) return; Session s = sessions.openSession(); Blobber b = new Blobber(); b.setBlob( Hibernate.createBlob( "foo/bar/baz".getBytes() ) ); b.setClob( Hibernate.createClob("foo/bar/baz") ); s.save(b); //s.refresh(b); //assertTrue( b.getClob() instanceof ClobImpl ); s.flush(); s.refresh(b); //b.getBlob().setBytes( 2, "abc".getBytes() ); b.getClob().getSubString(2, 3); //b.getClob().setString(2, "abc"); s.flush(); s.connection().commit(); s.close(); s = sessions.openSession(); b = (Blobber) s.load( Blobber.class, new Integer( b.getId() ) ); Blobber b2 = new Blobber(); s.save(b2); b2.setBlob( b.getBlob() ); b.setBlob(null); //assertTrue( b.getClob().getSubString(1, 3).equals("fab") ); b.getClob().getSubString(1, 6); //b.getClob().setString(1, "qwerty"); s.flush(); s.connection().commit(); s.close(); s = sessions.openSession(); b = (Blobber) s.load( Blobber.class, new Integer( b.getId() ) ); b.setClob( Hibernate.createClob("xcvfxvc xcvbx cvbx cvbx cvbxcvbxcvbxcvb") ); s.flush(); s.connection().commit(); s.close(); s = sessions.openSession(); b = (Blobber) s.load( Blobber.class, new Integer( b.getId() ) ); assertTrue( b.getClob().getSubString(1, 7).equals("xcvfxvc") ); //b.getClob().setString(5, "1234567890"); s.flush(); s.connection().commit(); s.close();
这就不太一样了。原以为用Hibernate后,至少能同一对不同数据库BLOB字段的操作方式,看来还是不行
|
|
|
|
热点TAG:
anti spam
|