相关疑难解决方法(0)

#1071 - 指定密钥太长; 最大密钥长度为767字节

当我执行以下命令时:

ALTER TABLE `mytable` ADD UNIQUE (
`column1` ,
`column2`
);
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

#1071 - Specified key was too long; max key length is 767 bytes
Run Code Online (Sandbox Code Playgroud)

有关column1和column2的信息:

column1 varchar(20) utf8_general_ci
column2  varchar(500) utf8_general_ci
Run Code Online (Sandbox Code Playgroud)

我认为varchar(20)只需要21个字节,而varchar(500)只需要501个字节.所以总字节数是522,小于767.那么为什么我会得到错误信息呢?

#1071 - Specified key was too long; max key length is 767 bytes
Run Code Online (Sandbox Code Playgroud)

mysql varchar byte mysql-error-1071

521
推荐指数
23
解决办法
57万
查看次数

你如何使用注释在休眠中映射"地图"?

使用注释如何将实体中的字段映射到给定对象的字符串"Map"(Hashtable)?该对象已注释,其实例已存储在hibernate数据库中.

我已经找到了使用简单的键和值来定义地图的语法:

<class name="Foo" table="foo">
    ...
    <map role="ages">
         <key column="id"/>
         <index column="name" type="string"/>
         <element column="age" type="string"/>
     </map>
 </class>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,一个实体作为键,一个简单类型作为值,如下所示:

<class name="Foo" table="foo">
    ...
  <map role="ages">
    <key column="id"/>
    <index-many-to-many column="person_id" 
         class="Person"/>
    <element column="age" type="string"/>
  </map>
</class>
<class name="Person" table="person">
    ...
    <property name="name" column="name" 
         type="string"/>
</class>
Run Code Online (Sandbox Code Playgroud)

但我不知道如何为元素映射的简单键做到这一点,我不知道如何使用注释来做到这一点.

java mapping orm hibernate

30
推荐指数
2
解决办法
6万
查看次数

使用Hibernate映射Map <String,String>

似乎我看到的每个地方都有过时的版本,不再适用.我的问题似乎很简单.我有一个Java类,它映射到derby数据库.我正在使用注释,并成功设法在我的数据库中创建所有其他表,但是在这个具体的例子中,我只需要一个不使用任何其他类的Map,只需要两个简单的字符串值.我尝试过在网上找到的所有内容时遇到了各种类型的错误.

有没有人知道这样做的简单方法,而不使用弃用的注释?

提前致谢!

string mapping hibernate

6
推荐指数
1
解决办法
7472
查看次数

Java EE/JPA:应用键值表技术

使用 JPA 我意识到我有动态增长的实体,即实体的属性数量可能会有所不同。知道有一些基于键值表的解决方案,我有兴趣了解有关如何将该技术应用于 JPA (JPQL) 的更多信息。

示例结构如下所示:

REF-ID       KEY         VALUE
1000         name        foo
1000         category    basic
1001         name        bar
1001         category    advanced
1001         descr       none
--------------------|------------
     PRIMARY        |
Run Code Online (Sandbox Code Playgroud)

问题是,这种表可能会大幅增长,多达数百万条记录。下一个问题是如何映射查询,例如

SELECT name, category, descr
FROM KEYSTORE 
WHERE id=1000;
Run Code Online (Sandbox Code Playgroud)

... descr 可能可用或不可用的地方

在使用 JPA 时,我是否在这里缺少任何概念来满足此要求,或者我是否必须在此处使用其他技术?性能呢?

database jpa jakarta-ee

4
推荐指数
1
解决办法
3089
查看次数

标签 统计

hibernate ×2

mapping ×2

byte ×1

database ×1

jakarta-ee ×1

java ×1

jpa ×1

mysql ×1

mysql-error-1071 ×1

orm ×1

string ×1

varchar ×1