这(应该)是一件很简单的事情,但是我很努力。
我希望这样生成一个表:
id
organizationNumber
name
但是,当我查看数据库时,发现排序是错误的。有谁知道我该如何强制hibernate / jpa以正确的顺序生成表?
desc Organization;
+--------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| organizationNumber | varchar(255) | NO | UNI | NULL | |
+--------------------+--------------+------+-----+---------+----------------+
这是我的实体bean的样子:
@Entity
@NamedQuery(name = "allOrganizations", query = "SELECT org FROM Organization org order by name")
public class Organization {
private Long id;
private String organizationNumber;
private String name;
public Organization() {
}
public Organization(String name) {
this.name = name;
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
@SuppressWarnings("unused")
private void setId(Long id) {
this.id = id;
}
@NotEmpty
@Column(unique=true, nullable=false)
public String getOrganizationNumber() {
return organizationNumber;
}
public void setOrganizationNumber(String organizationNumber) {
this.organizationNumber = organizationNumber;
}
Hibernate会按字母顺序生成列。根据这篇文章,原因如下:
它被排序以确保跨集群的确定性排序。
我们不能每次都依靠vm以相同的顺序返回方法,因此我们不得不做些事情。
显然,它以前是按照发生的顺序排列的,但是在3.2.0 GA和3.2.1 GA之间发生了变化。
我还发现,模式自动生成会按字母顺序为复合主键创建列,这似乎就像你的问题。该票证与主键的顺序更改有关,这会对索引性能产生负面影响。
问题内容: 关于JPA,我有以下问题: 我可以将元素的顺序保存在java.util.List中吗?在我的应用程序中,将元素放入列表的顺序很重要,但是从数据库中获取这些集合后,顺序却不一样(符合预期)。您能告诉我解决这个问题的方法吗? PS:我放入集合中的实体中没有字段可用来订购它们。 罗森 问题答案: 在JPA 1中,有一些骇人听闻的方法可以做到这一点,但是切换到JPA 2提供程序是最容易的。您正
有没有可能以新的顺序生成一个已经存在的列表(例如,用名字填充)? 因此,列表填充如下: 现在列表中的第一个是“Player0”。 现在是否可以使用新的随机数开始此列表?所以就像下面的例子: 变成 因此,列表的顺序应该保持不变,只应更改列表中的第一个(当然还有所有后续的) 我希望你明白我的意思。
问题内容: 我有3个相互依赖的xsd文件来构建我的元素定义。每个xsd文件都有其自己的名称空间。当我使用JAXB xjc生成类时,得到3个相应的包。到目前为止,一切都很好。 当我想使用解组器进行架构验证时,就会出现我的问题。为了避免不得不读取xsd文件,我从被解组的相关类中动态生成了模式。但是,由于该类依赖于其他2个包中的对象,因此除非我指定所有3个包,否则它无法生成架构。这已经不是一个非常实用的
问题内容: 如果我有这个: 然后在a中找到b: 有没有办法对列表做类似的事情?像这样: False的结果是可以理解的-因为它正确地寻找了一个元素’de’,而不是(我恰好想要它做的)’d’之后是’e’ 这是可行的,我知道: 我可以处理数据以获得所需的内容-但是有没有一种简短的Pythonic方式可以做到这一点? 需要说明的是:我需要在此处保留顺序(b = [‘e’,’d’],应返回False)。 如
我的 gradle 文件像这样 我在构建过程中遇到以下错误 我该如何解决这个问题
我在eclipse Luna中使用JAXB从第三方XSD文件生成Java类。这个文件通常定义一个简单类型,它只是一个原始类型。例如: 然后将简单类型用于复杂类型的元素,例如: JAXB为复杂类型生成一个看起来完全正确的Java类: 但是,它还为@XmlElement(name="ChannelId")行生成以下JAXB错误 有人知道这个错误消息是什么意思吗?我不能更改XSD文件,但是应该怎么做来删