草庐IT

java - JPA/Hibernate 将动态列映射为对象列表

我有一个现有的数据库模式,我正在尝试使用JPA/Hibernate注释对其进行ORM。该模式旨在允许客户端将额外信息与表中的每一行相关联。而不是使用键值模式现有解决方案在安装时确定所需的动态列数,并将表更改为为动态字段添加额外的列。实际上,每个表都有一组已知/固定的列和一组动态列。|table:X||id|known1|known2|dynamic1|dynamic2|..|dynamicx|参数表指示哪些表具有额外的动态字段|table:parameter||table|column|meta||x|dynamic1|||x|dynamic2|||x|dynamicx|||y|dyn

java - 使用 Ebean 映射字符串和枚举集合(Play 2.0)

我在映射实体中的字符串和枚举集合时遇到问题。我遵循了不同的建议,但似乎没有任何效果。我正在使用PlayFramework2.0和提供的Ebean作为ORM。这是一个插图类:packagemodels;importjava.util.*;importjavax.persistence.*;importplay.db.ebean.Model;@Entity@Table(name="foo")publicclassFooextendsModel{privatestaticfinallongserialVersionUID=1L;privateenumFooBar{FOO,BAR;}@Idpu

java - 连接 AppEngine 数据存储和搜索 API

我想知道连接数据存储和搜索API的最佳方法是什么。我正在寻找的是每当我创建某个实体(例如产品)时,该产品将被添加到搜索索引中。更新时索引也应更新,删除产品时-你猜对了-产品应从搜索索引中删除。在搜索产品时,我想对产品索引进行全文搜索,但我需要的不是文档,而是真实的实体。可能我需要先使用索引进行搜索,然后再调用数据存储?我最担心的是保持数据存储和搜索索引同步。当然,还要遍历搜索索引和数据存储区不仅会很麻烦,而且我觉得这可能还会在分页方面带来麻烦。我想知道是否有人已经通过这种方式“连接”了数据存储和搜索api,结果如何,也许还有一些可用的最佳实践。Appengine文档并没有说明这个领域。

java - 使用 EclipseLink 和 Querydsl 的自定义数据类型

我创建了一个自定义数据类型来存储有效和规范化的电子邮件地址:publicclassEmailimplementsSerializable{privatefinalStringvalue;publicEmail(StringemailAddress){this.value=normalize(emailAddress);if(!isValid(value)){thrownewIllegalArgumentException("Emailaddressformatisnotvalid:"+value);}}...}及其相应的JPA2.1转换器,用于自动存储到数据库和从数据库中检索:@Con

java - Hibernate Session#merge 在收到带有 ID 的实体时是否应该插入?

这似乎经常出现,但我用谷歌搜索无济于事。假设您有一个Hibernate实体User。您的数据库中有一个ID为1的User。您有两个线程在运行,A和B。它们执行以下操作:A获取用户1并关闭其SessionB获取用户1并删除它A更改用户1的字段A得到一个新的Session并合并的用户1我所有的测试都表明merge试图在数据库中找到用户1(显然不能),因此它插入了一个ID为2的新用户。另一方面,我的期望是Hibernate会发现被合并的用户不是新用户(因为它有一个ID)。它会尝试在数据库中找到用户,这会失败,因此它不会尝试插入或更新。理想情况下,它会抛出某种并发异常。请注意,我正在通过@Ve

java - JPA criteria API 将 'in' 表达式转换为多个 'OR'

带有“in”表达式的JPA标准API转换为多个“OR”而不是“in”例如我的主要模型publicclassPerson{...@ManyToOne(fetch=FetchType.LAZY)@JoinColumn(name="department_id")privateDepartmentdepartment;...}多对一关系publicclassDepartment{@Id@Column(name="department_id")privateIntegerdepartmentId;@OneToMany(mappedBy="department")privateListperson

java - 使用 hibernate-envers 时,AUD 表中的所有 @Version 字段均为 null,但在实体中 - 表已填充好吗?

有应用spring+jpa+envers(hibernate)envers需要将实体的历史保存在特殊的表中。在我保存了几次我的实体之后,我希望看到USER表中的填充版本字段和USER_AUT中的填充版本字段。但实际结果在USER表中是正确的值,但在版本列中添加了REV_TYPE、REV列(在字段中只是couter的所有行)和null。我用的是4.0.1.Finalhibernateorg.hibernatehibernate-envers4.0.1.Finalorg.hibernatehibernate-entitymanager4.0.1.Final但是,当我查看表时,Version

java - Spring JPA/hibernate : Failed to import bean definitions

将我的头撞在墙上几个小时也无法解决这个问题,这似乎是我的配置设置错误,或者可能是依赖冲突或缺少依赖。有什么想法吗?相关依赖:SpringDataCommonsCore1.2.0SpringDataJPA1.8.0HibernateCore5.0HibernateJPA2.1Eclipse中的错误信息:Configurationproblem:Failedtoimportbeandefinitionsfromrelativelocation[SpringDbContext.xml]Offendingresource:classpathresource[SpringAppContext.x

java - JPA/hibernate : ManyToMany delete relation

我有两个类,比如Group和Person,它们具有在JoinTable中映射的多对多关系。如果我删除一个与组有关系的人,我想从连接表中删除条目(而不是删除组本身!)。我必须如何定义级联注释?我没有找到真正有用的文档,但有几个Unresolved董事会讨论...publicclassGroup{@ManyToMany(cascade={javax.persistence.CascadeType.?},fetch=FetchType.EAGER)@Cascade({CascadeType.?})@JoinTable(name="PERSON_GROUP",joinColumns={@Joi

java - Hibernate @OrderBy 用于嵌套属性

我需要使用@OrderBy(JPA,Hibernate作为提供者)对嵌套属性的集合进行排序:@OneToMany(mappedBy="paramSpec",cascade=CascadeType.ALL)@OrderBy("release.ordinal")privateListpkdbParams;在PkdbParameter.java中:...@ManyToOne@JoinColumn(name="release_id")privateReleaserelease;...在Release.java中:...privateintordinal;...(所有这些字段都提供了简单的get