问题标签 [embeddable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jpa - 使用条件查询可嵌入对象
我使用 Toplink Grid(Eclipselink) 作为我的 JPA 实现框架。
当我尝试使用 Criteria 查询 Embeddable 对象时,我遇到了如下异常:
我尝试的代码如下:
其中 ContactInfo 是一个可嵌入的类,由一个地址和一组电话组成。电话是字符串归档的。
任何帮助将不胜感激。
我检查了与此问题相关的问题: JPA - Criteria API and EmbeddedId
但这并没有解决我的问题。
而且我找不到任何示例代码。
致詹姆斯:
实体代码如下:
}
和实体 ContactInfo
}
对于等效的 JQPL
查询 query = em.createQuery("SELECT e.conInfo FROM Employee e where e.employId < 3");
工作。
jpa - JPA / Hibernate OneToMany 映射,使用复合 PrimaryKey
我目前正在为使用复合主键类的场景使用正确的映射注释。首先,我想用文字实现什么:
我有 2 个类:组和 FieldAccessRule。一个 Group 可以有多个 FieldAccessRule,而一个 FieldAccessRule 只能分配一个 Group。到目前为止,建模这不是问题(简化):
对于 FieldAccessRule:
现在,我决定为 FieldAccessRule 使用复合 PK,因为规则对于 ONE Group 和 ONE Field 应该是唯一的。它看起来像这样:
和ofc。FieldAccessRule 需要更改为
我现在如何为 Group 的 FieldAccessRuleSet 创建正确的映射?这样做,我得到:
在属性“fieldAccessRules”中,“映射者”值“组”无法解析为目标实体上的 > 属性。
创建从 Group 到 PrimaryKey A PART 的映射的正确方法是什么?
编辑:我知道发现,使用
完全按预期工作。它编译得很好,它可以很好地创建数据库,并且在加载具有预定义角色的组后,它们可以按预期使用。
但是,Eclipse 仍然说
在属性“fieldAccessRules”中,“映射者”值“fieldAccessRulePK.group”无法解析为目标实体上的属性。
我不确定,如果忽略错误并“假设”一切都很好......(我发现了一个帖子,据说,Hibernate 支持模式 attr1.attr2 的映射,但不支持 JPA-confirm。 )
hibernate - Hibernate:在 HQL 查询中使用嵌入时出现异常
我有一个客户购物应用程序。这些客户有一个包含产品的购物车。这是我使用的带有嵌入的(简化的)映射:
现在,我正在尝试使用 HQL 获取客户的购物车。我知道我不能直接查询嵌入,但没有什么能阻止我选择它作为一个字段:
但这会导致以下异常:
我可以通过检索客户并遍历其 getCart() 方法来克服这个问题,但我想知道这个问题是否是由不正确的映射或类似的东西引起的。非常感谢!
php - 检查 youtube 视频是否可嵌入通过 xml
我有以下链接http://gdata.youtube.com/feeds/api/videos/tYMYv1zsAxE并返回一个 xml 文件,其中位于 noembed 标记,以防视频不可嵌入。
我想在视频列表上创建一个循环来检查哪些是可嵌入的,哪些不是。
java - @Embedded 对象如果没有基本数据类型字段,则不会自动实例化
基本问题:为什么不总是实例化 @Embedded 对象?
有趣的观察是,如果 @Embedded 对象不包含基本数据类型(int、boolean ...)或之前没有被触及,Ebean 不会实例化这些对象。例子:
java - 设置有可嵌入的、可为空的属性
我有Set<Reference>
像这样映射的可嵌入类。
参考映射如下:
当我尝试合并父实体(例如,我从集合中删除一个引用)时,hibernate 在合并期间将此 sql 生成为准备好的语句...
但是如果例如描述是NULL
那么这个删除失败,更确切地说它不会删除记录,因为 where 子句不好(description=null
正确的方法是description is null
)。那么我怎么能告诉hiberate它应该创建“更好”的sql删除呢?
它仅在所有字段都具有非空值时才有效。
java - 可嵌入到 ElementCollection
我有看起来像这样的可嵌入类:
这在实体中用作
当我更新实体和/或它的 clob 时,休眠会生成更新/删除 SQL 查询,其中所有来自 Embeddable 的字段都存在。我理解它为什么这样做,但在这种情况下不是很好,因为 Hibernate 尝试将 CLOB 值与 operator = 进行比较我可以以某种方式告诉 hibernate 忽略字段值 (CLOB) 并且只使用校验和(为此目的创建它是从clob计算的md5哈希,所以它足以比较)查询中的where子句?或者你们有其他想法如何解决这个问题?
containers - 无法创建 WebSphere 8 的可嵌入 EJB 容器 - NoClassDefFoundError HpelHelper
我正在使用 WebSphere 8 的可嵌入 EJB 容器为我的 EJB 和 JUnit4 编写一些单元测试。我的 IDE 是 RAD 8。
这是我的简单测试代码片段:
我得到一个 NoClassDefFoundError:
我在任何地方都找不到带有 com/ibm/ejs/ras/hpel/HpelHelper 类的 jar。
这是我的类路径:
spring - Dynamic enumerations in Spring, or how to keep Spring away from constructors?
Is "Dynamic enumerations" an oxymoron, like "static variables"? ;-)
I've only been soaking in Spring for a short time, and I suspect I'm not thinking Spring-like yet. I would like to have a type-safe, dynamic enumeration. I've used this pattern for things like events or error codes where you want to allow subsequent sub-classes to expand the enumeration. Since "enum" can't be extended you're left with an enumeration pattern class. For example (stripped down):
The problems start when I add Spring to the mix. Since it's only a string, I've annotated EventType as "@Embeddable", and classes that use it annotate that member as "@Embedded". This seemed to work great until it came time for querying using queryDSL-jpa. DSL would try to convert the DB text to an EventType, which then would have a type mismatch with strings. That is, I couldn't say: WHERE EventType = "Start"
. I got around this (not elegantly) by having the class with such a field store it as a String, and parse it to an EventType object in the getter. So now it's just a plain ol' string as far as JPA is concerned.
Now I'm running into an issue with the service API. I have a method with an EventType parameter. The problem is that the JsonRpcServer class is trying to convert the String to an EventType by instantiating it. This of course throws an "already exists!" exception.
I can probably solve this second issue with @JsonTypeResolver (which I'm reading up on now). But all of these shenanigans feel wrong. This must be a common issue and there's got to be a better solution. What's the proper way of handling such classes in Spring? (where it's not a bean, really, and has a protected constructor).
(I'm leaving out some specifics about some proprietary libraries our code uses, and which might not let me adopt an answer like "Oh, you should be using 'X' instead." Thanks for understanding.)
jpa - JPA EclipseLink Weaver 在其 setter 中生成对 porperty getter 的调用 -> NullPointerException
我有一个@Embeddable
类,它使用属性访问来包装另一个不能由 JPA 通过字段访问直接映射的对象。它看起来像这样:
坚持@Entity
一个MyWrapper
字段工作正常。但是当我执行查询以从数据库加载实体时,我得到一个NullPointerException
. 堆栈跟踪和一些调试显示 EclipselinkMyWrapper
通过调用其默认构造函数创建一个新实例,然后调用该setJPARepresentation()
方法(如预期的那样)。
但是现在意外发生了:堆栈跟踪显示getJPARepresentation()
从 setter 内部调用了,这当然会导致执行NullPointerException
时返回wrappedField.toString()
。
事实是,代码中显然没有对 getter 的调用,并且堆栈跟踪显示没有行号指示从 setter 中调用 getter 的位置。所以我的结论是,Eclipselink 的字节码编织器生成了对 getter 的调用。
构建解决方法很容易,但我的问题是:为什么 Eclipselink 会这样做?
PS:我在 GlassFish Server Open Source Edition 3.1.2(build 23)中使用 EclipseLink 2.3.2.v20111125-r10461