小编Has*_*ash的帖子

即使级联为ALL,Hibernate也无法持久存在

我有两个实体AuthorizationPositionProductAttributes一个WildflyEE项目.两者之间的映射如下:

AuthorizationPosition:

  @javax.persistence.ManyToOne(fetch =  javax.persistence.FetchType.LAZY , optional=false, cascade = {javax.persistence.CascadeType.ALL})
  @javax.persistence.JoinColumn(name = "PRODUCT_ATTRIBUTES_ID", referencedColumnName="PRODUCT_ATTRIBUTES_ID")
  protected org.example.persistence.entity.ProductAttributes productAttributes;
Run Code Online (Sandbox Code Playgroud)

产品属性:

  @javax.persistence.OneToMany(
        targetEntity=org.example.persistence.entity.AuthorizationPosition.class,
        mappedBy="productAttributes",
        fetch=javax.persistence.FetchType.LAZY
                    , cascade = javax.persistence.CascadeType.ALL
                 , orphanRemoval = true         )
  protected java.util.Set<org.example.persistence.entity.AuthorizationPosition> authorizationPositionsByProductAttributes;
Run Code Online (Sandbox Code Playgroud)

我把所有的关系,在两个实体,并呼吁em.persist()ProductAttributes(作为一个更大结构的一部分),这是这里的怪错误出现(在这个问题结束全堆栈跟踪):

java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: Not-null property references a transient value - transient instance must be saved before current operation : org.example.persistence.entity.AuthorizationPosition.productAttributes -> org.example.persistence.entity.ProductAttributes
Run Code Online (Sandbox Code Playgroud)

我错过了什么或Hibernate(hibernate-core-5.3.1.Final)真的试图坚持其他方式?这不应该是一个问题,尽管CascadeType.ALL在所有关系映射中都存在这个问题吗?

完整的堆栈跟踪:

java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: Not-null property references a transient value …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa

13
推荐指数
1
解决办法
434
查看次数

我用更新的代码替换后,是否可以从包体中恢复旧的Oracle pl/sql源代码

我创建了一个带有标题和带有大量代码的正文的Oracle PL/SQL包.

后来,在CREATE OR REPLACE PACKAGE BODY...用不同的源代码重新声明语句之后,我最终意外地从该主体中删除了代码(实际上我打算在不同的包名下保存).

有什么方法可以从包中恢复旧的替换源代码吗?

oracle replace recover package

12
推荐指数
2
解决办法
4万
查看次数

Oracle JDK和OpenJDK的性能

我有Oracle JDK7(JavaSE Hotspot Embedded JRE)和OpenJDK7(Cacao,JamVM,ZeroVM).平台是:PPC32嵌入式平台(e550)

我用两个java运行简单的素数java应用程序.由于coclusion Oracle JRE比使用cacao或jamvm或零VM的open jdk快得多.

我希望用openjdk提高执行速度.需要与oracle JRE相同的执行时间.如何提高java应用程序(单线程或多线程)的执行速度.

哪些是Oracle和Open JDK中不同的组件.

java performance openjdk

12
推荐指数
0
解决办法
2万
查看次数

我可以使用RESTeasy获取application.wadl文件吗?

我需要为RESTful服务获取WADL文件.我知道如果使用球衣,它可以作为http://localhost:8080/application.wadl.但我使用RESTeasy.

在我的框架案例中我可以这样做吗?

java web-services wadl resteasy

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

什么是java中间件技术

我们可以将哪些技术称为"Java中间件"?

如果我说JMS,这WS是正确的吗?

java ejb middleware

11
推荐指数
1
解决办法
3万
查看次数

错误:找不到类型的验证程序:java.time.LocalDate

我正在开发一个使用bean验证的项目(Hibernate Validator 5.1.3.Final).我的bean有一个带@Past注释的属性.

@Past(message = "A data deve estar no passado.")
private LocalDate dataAbertura;
Run Code Online (Sandbox Code Playgroud)

但是,当验证发生时,我得到以下异常:

21:46:12,424 ERROR [io.undertow.request] (default task-35) UT005023: Exception handling request to /financeiro/clientes/pessoafisica: javax.servlet.ServletException: javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.time.LocalDate.
    at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:127) [vraptor-4.1.4.jar:]
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.1.0.Final.jar:1.1.0.Final] …
Run Code Online (Sandbox Code Playgroud)

java java-ee hibernate-validator bean-validation java-ee-7

11
推荐指数
1
解决办法
1万
查看次数

JPA条件API查询子类属性

我想执行一个匹配特定子类属性的查询,所以我正在尝试使用treat().

在这个例子中我想要:

名称以"a"开头的
所有科目,或所有科目,即姓名以"a"开头的人

private List<Subject> q1()
{
    CriteriaBuilder b = em.getCriteriaBuilder();

    CriteriaQuery<Subject> q = b.createQuery(Subject.class);
    Root<Subject> r = q.from(Subject.class);
    q.select(r);
    q.distinct(true);
    q.where(
        b.or(
            b.like(r.get(Subject_.name), "a%"),
            b.like(b.treat(r, Person.class).get(Person_.lastName), "a%")));

    return em.createQuery(q).getResultList();
}
Run Code Online (Sandbox Code Playgroud)

显然,Person扩展Subject,Subject是抽象的,继承是SINGLE_TABLE,Subject@DiscriminatorOptions(force = true)其他原因 (非进水).

但生成的SQL是这样的:

select distinct subject0_.ID as ID2_71_, subject0_.CODE as CODE3_71_, ...
from SUBJECT subject0_ 
where subject0_.DTYPE='Person' and (subject0_.name like 'a%' or subject0_.lastName like 'a%')
Run Code Online (Sandbox Code Playgroud)

虽然我期待:

select distinct subject0_.ID as ID2_71_, …
Run Code Online (Sandbox Code Playgroud)

inheritance hibernate jpa criteria criteria-api

11
推荐指数
1
解决办法
2233
查看次数

更新JPA实体中的一个字段

我有一个User在一个函数中被赋予系统特权的实体.我有一个网页,您可以从下拉列表中选择用户并将表单提交给服务器.在服务器端,我想只更新该实体的一个字段.

我的用户实体将具有除了设置的一个字段及其id之外的所有对象的默认值.我是否需要findById更新特定字段然后进行合并,或者有没有办法告诉只更新该字段?

jpa

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

使用JPA/Hibernate Criteria在日期之间拉

我正在尝试使用以下代码从MySQL表中提取Experience对象列表.每个体验都有一个from datetime列和一个datetime列,我只想拉出今天日期落在from和to之间的行.

我正在使用JPA 2.0运行Hibernate.

    Date currentDate = new Date();
    CriteriaBuilder builder = entityManager.getCriteriaBuilder();
    CriteriaQuery<Experience> query = builder.createQuery(Experience.class);
    Root<Experience> root = query.from(Experience.class);
    builder.between(currentDate, root.get("from"), root.get("to"));
    return entityManager.createQuery(query).getResultList();
Run Code Online (Sandbox Code Playgroud)

我的问题是,builder.between()显然不允许我传递Date对象.

我的问题有更好的解决方案吗?

java hibernate jpa

10
推荐指数
3
解决办法
4万
查看次数

CSS限制深度样式可以应用于元素

在选择元素时,是否有人知道限制子深度的解决方案CSS

例:

.my-class div div:end(styles:here)
Run Code Online (Sandbox Code Playgroud)

这样可以防止必须向CSS页面中的每个第二个div 添加类,同时防止样式被传递到第三个等等的子节点.

html css css-selectors

10
推荐指数
1
解决办法
1万
查看次数