小编Sur*_*non的帖子

Hibernate尝试两次持久保存同一个对象

我有3个类对应3个表V,DP.D有一个FK到V(FK_V)并使用OneToMany关系加入.也是他们退出4台 V_D_P具有的这些关系V,DP.

以下是这些数据模型的样子:

@Entity
@Table(name = "V")                                                   
public class V {

     @Id
     @GeneratedValue(strategy = GenerationType.SEQUENCE)
     @Column(name = "ID")
     private Long id;

    @OneToMany(cascade=CascadeType.ALL)
    @JoinColumn(name = "FK_V", referencedColumnName="Id", nullable = false)
    private Set<D> d;

    @OneToMany(cascade=CascadeType.ALL)
    @JoinColumn(name = "FK_V", referencedColumnName="Id", nullable = false)
    private Set<V_D_P> vdp;

    //Getters Setters etc.
}


@Entity
@Table(name = "V_D_P")
public class V_D_P {

      @Id
      @GeneratedValue(strategy = GenerationType.SEQUENCE)
      @Column(name = …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa

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

Hibernate JTA:读取每个环境的数据库连接参数

我正在编写一个使用hibernate的javaEE应用程序.该应用程序将在多个环境(dev,qa,prod等)上运行,并且将具有与它们中的每一个相关联的单独的dbs.我想为每个环境分别设置jdbc-url,username,password等hibernate属性.

我目前persistence.xml看起来像:

    <persistence-unit name="PU" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <validation-mode>CALLBACK</validation-mode>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
            <property name="hibernate.hbm2ddl.auto" value="validate" />

            <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
            <property name="hibernate.event.merge.entity_copy_observer" value="allow"/>

            <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
            <property name="hibernate.connection.url" value="jdbc:oracle:thin:@host/schema"/>

            <property name="hibernate.connection.username" value="abc"/>
            <property name="hibernate.connection.password" value="***"/>    

        </properties>
    </persistence-unit>
Run Code Online (Sandbox Code Playgroud)

我在我的java代码中使用持久性单元如下:

@PersistenceContext(unitName = "PU")
private EntityManager em; 
Run Code Online (Sandbox Code Playgroud)

有没有办法可以将存储在不同属性文件中的hibernate属性注入到不同环境的EntityManager中?

请注意我使用的是JTA,因此无法使用EntityManagerFactory.我也不是也不想用春天.

java hibernate jpa jta

8
推荐指数
1
解决办法
907
查看次数

在c语句中计算标记

以下C语句中的标记数.

printf("i = %d, &i = %x", i, &i);
Run Code Online (Sandbox Code Playgroud)

我想这里有12个令牌.但我的回答是错误的.

谁能告诉我如何在上述C语句中找到令牌?

PS:我知道令牌是源程序文本,编译器不会将其分解为组件元素.

c token

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

如何在hibernate中使用单个表连接三个表?

我有三个表A,BC和映射表A_B_C具有外键的所有三个表和其他一些属性(比方说X,Y).现在,我想在我的java类中加入代表这三个表.

这些表之间的关系是一对多的.因此,我希望我的Java类看起来像这样.

@Entity(name = "A")
@Table(name = "A")
public class A {

       ??? Hibernate Annotation or query
       Map<B,List<C>> BMapC;
}

@Entity(name = "B")
@Table(name = "B")
public class B {
      ...
}

@Entity(name = "C")
@Table(name = "C")
public class C {
      ...
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以利用Hibernate Annotations.如果没有,有没有办法可以编写自定义查询并填充变量?

java hibernate jpa

5
推荐指数
1
解决办法
3039
查看次数

@Inject无法初始化对象

我正在使用tomee服务器来运行我的javaEE应用程序.我写了一个注入对象的过滤器.但是,该对象似乎没有实例化:

以下是我的代码:

Filter.java

@Priority(value = 2)
@Provider
@Singleton
public class Filter implements ContainerRequestFilter {


     @Inject
     private Faculty faculty;


     public void filter(ContainerRequestContext requestContext) {
         System.out.println("faculty name is :"+faculty.getFacultyName());
     }
}
Run Code Online (Sandbox Code Playgroud)

Faculty.java

import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;

public class Faculty {

    private List<String> facultyMembers;
    private String facultyName;

    @PostConstruct
    public void initialize() {
        this.facultyMembers = new ArrayList<String>();
        facultyMembers.add("Ian Schultz");
        facultyMembers.add("Diane Reyes");
        facultyName = "Computer Science";
    }

    public List<String> getFacultyMembers() {
        return facultyMembers;
    }

    public String getFacultyName() {
        return facultyName;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在获得NPE.以下是堆栈跟踪: …

java-ee cdi tomee tomee-7

5
推荐指数
0
解决办法
854
查看次数

反编译器字节码和混淆器

我们可以从java字节码完全反向设计源代码吗?为什么Java中允许使用此功能?java反编译器对反混淆器的成功程度如何?

java

3
推荐指数
3
解决办法
2311
查看次数

从cxf消息获取Http请求主体

我正在尝试编写一个cxf拦截器,它将所有来自我的应用程序的传入请求转发到另一个应用程序。但是对于POST请求,我无法获取请求的正文。

我正在使用的代码如下所示:

String body = message.getContent(String.class);
Run Code Online (Sandbox Code Playgroud)

但是,主体为null。我调查了cxf代码,看起来您必须指定确切的类(例如:ArrayList)来获取主体。我的应用程序具有多个此类消息类。我想知道是否有一种方法可以避免为每个POJO类编写多个检查并在一个检查中完成if

java web-services cxf interceptor

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

加特林不在会话中存储值

我在加特林中使用会话来存储值,如下所示

      exec(session => {
        val id = Instant.now.toEpochMilli.toString + scala.util.Random.nextInt(1000).toString
        session.set("STARTED_PROCESS_ID",id)
        //Store the id somewhere for processing later
        session
      })
      .exec(
          http("scenario")
            .post(url)
            .header("Content-Type", "application/json")
            .header("id", session => session("STARTED_PROCESS_ID").as[String])
            .body(StringBody(body)
            .check(status.is(200))
Run Code Online (Sandbox Code Playgroud)

根据文档,该值应存储在会话中,并且标头“id”应按预期填充。但是运行模拟时出现以下错误

java.util.NoSuchElementException: No attribute named 'STARTED_PROCESS_ID' is defined
    at io.gatling.core.session.SessionAttribute.as(Session.scala:46)
    at common.HttpUtil$.$anonfun$sendPostRequestForWasStartDefLoad$1(HttpUtil.scala:557)
    at io.gatling.core.action.SessionHook.execute(SessionHook.scala:32)
    at io.gatling.core.action.Action.$bang(Action.scala:38)
    at io.gatling.core.action.Action.$bang$(Action.scala:38)
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙解释为什么会发生这种情况吗?

gatling scala-gatling

2
推荐指数
1
解决办法
3548
查看次数

递增指针时的模糊行为

#include<stdio.h>
main()
{

        char c = 'R';
        printf("%c\n",c);
        c++;
        printf("%c\n",c);
        char *ptr ="Ramco Systems";
        printf("%c\n",(*ptr));
        (*ptr)++;
        printf("%d\n",(*ptr));

}
Run Code Online (Sandbox Code Playgroud)

第一,第二,第三printf的输出是'R','S'和'R'(如预期的那样).但行"(*ptr)++;" 给运行时错误.有人可以解释原因吗?

c pointers

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

标签 统计

java ×5

hibernate ×3

jpa ×3

c ×2

cdi ×1

cxf ×1

gatling ×1

interceptor ×1

java-ee ×1

jta ×1

pointers ×1

scala-gatling ×1

token ×1

tomee ×1

tomee-7 ×1

web-services ×1