用户应该能够更改包含字节
数组的实体的内容,该数组映射到数据库中的图像
列。请注意,我不能使用LOB功能,因为赛贝斯不支持它。
当我试图持久化或合并实体时,通常只存储包含文本/普通
数据的实体,而存储其他类型的文件,如。pdf
或。odt
使数据库抛出:
java.sql.SQLException: JZ0SM: jConnect could not execute a stored procedure because there was a problem sending the parameter(s). This problem was likely caused because the server does not support a specific datatype, or because jConnect did not request support for that datatype at connect time.
Try setting the JCONNECT_VERSION connection property to a higher value. Or, if possible, try sending your procedure execution command as a language statement.
Hibernate会在异常发生之前立即记录一个正常的更新,我肯定不会执行任何存储过程,所以我不确定错误指的是哪个存储过程。我在原生查询中也尝试过同样的方法,但最终还是出现了同样的错误。
16:08:04,776 INFO Hibernate: update KVS_MIPO_DOWNLOAD_FILE set creatorName=?, data=?, referencePeriod=? where id=?
我已经检查了我的jconn4
驱动程序的版本,并将JCONNECT_version=7.0
添加到数据源中的连接字符串中。没有效果。
在网上搜索没有产生任何相关问题。赛贝斯支持页面只是列出了erorr,没有提供进一步的帮助。
我使用赛贝斯ASE 15.7.0,JPA 2超过Hibernate 4.0.1。最后,运行在Suse 12.2机器上的JBoss 7.1.1上。
实体:
@Entity
@DiscriminatorValue("file")
@Table(name = "KVS_MIPO_DOWNLOAD_FILE")
public class DownloadFile extends DownloadResource {
@Column(nullable = false)
private String creatorName;
@Basic(fetch = FetchType.LAZY)
private byte[] data = new byte[0];
private String referencePeriod;
...
public byte[] getData() {
if (data != null) {
return data.clone();
}
return new byte[0];
}
public void setData(final byte[] data) {
if (data == null) {
this.data = null;
return;
}
this.data = data.clone();
}
表DDL:
create table KVS_MIPO_DOWNLOAD_FILE (
referencePeriod varchar(255) null ,
creatorName varchar(255) not null ,
id int not null ,
data image null
)
谢谢你。
编辑:这个问题最初是一个JSF/JPA/Sybase问题。通过测试,我可以排除JSF作为错误源,所以我删除了JSF部分。
结果表明,错误的原因是jConnect 7.0版本中的一个错误。我已经更新到7.07,问题已经解决。
全部的 这个标题几乎说明了一切。我在这里查看,但找不到任何有关模式的信息。 有人能帮我照个灯吗? 我知道MS SQL Server使用“schema.name”来引用数据库中的表,但对于Sybase我不确定。 蒂娅! 编辑: 我想我应该更具体一点。 我知道在MS SQL Server中可以修改表所有者,但您仍然可以通过“从sysobjects so、sysusers su、sys.tables t
我在赛贝斯ASE 15.5中使用赛贝斯Central工具创建了几个表。我已经将列定义为主键(int数据类型),不知何故,该列也变成了标识。 现在,从赛贝斯中心,我无法从该列中删除标识,即使该表或任何引用的表中没有数据。 有人能帮忙吗?我不想使用Set IDENTITY_INSERT,我想从本专栏中完全删除标识行为。 谢啦
我四处搜索,找到了一些有用的程序,例如: 但没人能帮我。我需要获得有关CPU、RAM、OS等的信息。有什么工具或程序可以帮助我吗?
如何在Sybase ASE 15表格设置中删除列。 我尝试了一些,但没有用: 以及查看Sybase文档,它没有为我的问题提供解决方案。 数据库my_db未启用选择进入数据库选项。无法执行带有数据副本的ALTER TABLE。设置选择进入数据库选项并重新运行。
Support for the Sybase database. The following table summarizes current support levels for database release versions. 数据库接口支持 The following dialect/DBAPI options are available. Please refer to individ
似乎 WITH 仅在 Sybase SQL Anywhere 中受支持:http://dcx.sybase.com/1100/en/dbusage_en11/commontblexpr-s-5414852.html …但不在Sybase ASE中:( 有人可以建议Sybase ASE中是否存在等效的构造吗?还有其他方法可以实现东西而不是使用 WITH,但我们计划重新调整一些动态生成的 SQL 的用