当在不同数据库之间切换时,我有一个关于包含大对象(BLOB)的hibernate映射的奇怪问题.
@Lob
private byte[] binaryData;
Run Code Online (Sandbox Code Playgroud)
上面的字段在MySQL和Oracle中创建了一个字节数组字段,但是在PostreSQL中它创建了一个oid类型的字段.
现在,当我尝试访问此字段时,它在其他数据库中工作正常,但在PostgreSQL中它失败并出现以下错误
Column "binaryData" is of type oid but expression is of type bytea.
Run Code Online (Sandbox Code Playgroud)
所以我试着简单地删除"@Lob"注释,这将解决PostgreSQL的问题,但是在没有这个注释的MySQL中,hibernate创建了一个类型为"tinyblob"的字段,在我们的大多数情况下都是小的.而且,由于我们希望在多个环境中使用此项目,因此切换两个不同的映射会很烦人.
是否有任何注释强制postgreSQL使用bytea而不是oid用@Lob注释的字段?或者是否有可能省略@Lob并放置其他内容以强制MySQL使用更大的数据类型分配它,就像使用@Lob一样?
我甚至可以想象有这样的解决方案
if (field is of type oid)
store it as oid
else if (field is of type bytea)
store it as bytea
else
// not storable
Run Code Online (Sandbox Code Playgroud)
和吸气剂一样,如果有办法做到这一点
编辑:
以下声明正在起作用.它将列分配为oid,但是使用它的hibernate知道如何从这样的字段存储和检索数据
@Lob
@Type(type="org.hibernate.type.PrimitiveByteArrayBlobType")
private byte[] binaryFile;
Run Code Online (Sandbox Code Playgroud) 是否有任何表格可以找到OID与它们在证书主题字段中表示的属性之间的所有对应关系.例如,我知道"1.3.6.1.4.1.311.20.2"表示证书的模板名称,"2.5.29.30" - 名称限制.我们在哪里可以找到其他的oids,尤其是主要属性,如CN,C,S,L,O,OU ...?
目前我使用以下方法来弄清楚:
总记忆:
.1.3.6.1.2.1.25.2.2.0
Run Code Online (Sandbox Code Playgroud)
对于使用过的内存,我走了下面的oid(给我使用每个进程):
.1.3.6.1.2.1.25.5.1.1.2
Run Code Online (Sandbox Code Playgroud)
并总结他们.
但是,这非常不准确,因为与使用WMI或性能监视器相比,它显示的使用率要低得多.
我错过了什么吗?我不想使用第三方SNMP代理(如SNMP信息,btw正常工作).我想用Windows中的标准来弄清楚它.
我正在编写网络管理系统,并且需要能够在从SNMP陷阱接收的OID后面打印出有意义的名称.由于该系统的性质/大小,在每个正在使用的设备上手动将每个OID映射到有意义的名称并不是一个好主意.
话虽如此,是否有一种免费(商业用途)方式将名称/描述与其各自的OID自动配对,用于MIB中的所有OID; 那些配对在Java程序中使用?
换句话说,是否有工具或方法将MIB树转换为可在程序中遍历的Java对象以检索OID的名称/描述?
谢谢
如何使用 NET-SNMP API 获取 OID 的语法类型和读/写访问权限?
我正在编写一个使用 SNMP 协议在远程机器上读取和设置值的 SNMP 工具。在设置该值之前,我需要从 MIB 文件中检查其类型和访问权限(是否允许在服务器上写入该值)。
不幸的是,我在 Net-SNMP 文档中找不到有关如何执行此操作的任何提及。
我在一个大对象中有数据,现在我想制作它的副本,这样我就可以在保留原始副本的同时附加到它。我可以使用任何 JDBC 调用或 SQL 语句来导致这种情况发生吗?
从我找到的每个资源来看,似乎我必须实际将所有数据读取到我的客户端并再次将其写出以获取副本。我更喜欢节省往返行程。
我们决定从OIDPostgreSQL 9.0数据库中的转移到,而改用bytea列。我正在尝试将数据从一列复制到另一列,但是我找不到正确的查询。这是我最近得到的:
update user as thistable set pkcs_as_bytea = (select array_agg(mylargeobject.data) from
(select * from pg_largeobject where loid = thistable.pkcs12_as_oid order by pageno) as mylargeobject) where thistable.pkcs12 is not null
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误信息:
ERROR: column "pkcs_as_bytea" is of type bytea but expression is of type bytea[]
Run Code Online (Sandbox Code Playgroud)
那么正确的查询是什么?
我尝试创建自定义 SNMP oid(和脚本)。
我将以下行添加到 snmpd.conf (并重新启动服务):
pass .1.3.6.1.3.2 /bin/myscript.sh
Run Code Online (Sandbox Code Playgroud)
。
cat myscript.sh
#!/bin/sh
echo .1.3.6.1.3.2
echo gauge
exec 100
Run Code Online (Sandbox Code Playgroud)
。
snmpwalk -c mycommunity -v2c 10.2.1.4 .1.3.6.1.3.2
SNMPv2-SMI::experimental.2 = Gauge32: 100
Error: OID not increasing: SNMPv2-SMI::experimental.2
>= SNMPv2-SMI::experimental.2
Run Code Online (Sandbox Code Playgroud)
snmpwalk 是否期望查询末尾有任何内容?snmpget 工作没有问题!
我正在寻找一个来获取使用OID的固件版本。Cisco SwitchSNMP
我尝试了以下MIB文件,但不能。
OLD-CISCO-CHASSIS-MIB.mib
ENTITY-MIB.my
CISCO-ENTITY-ASSET-MIB
Run Code Online (Sandbox Code Playgroud)
有谁知道吗OID,如果知道的话,请留言给我。谢谢
oid ×10
snmp ×6
postgresql ×3
annotations ×1
asn.1 ×1
bytearray ×1
certificate ×1
cisco ×1
dn ×1
hibernate ×1
java ×1
jdbc ×1
ldap ×1
mib ×1
net-snmp ×1
networking ×1
windows ×1
x509 ×1