小编Gui*_*rum的帖子

C++如何解释一个带有'+'的cout?

我一直在使用Java/C++来回移动,所以我搞砸了我的控制台输出并意外地编​​写了如下行:

cout << "num" + numSamples << endl;
cout << "max" + maxSampleValue << endl;
Run Code Online (Sandbox Code Playgroud)

每一个都给了我在程序中的一些其他字符串.我现在意识到我的错误,但是C++解释这些行是什么,以便它们在我的程序中输出不同字符串的不同部分?

c++ cout

27
推荐指数
2
解决办法
1514
查看次数

您如何发回另一个实体拥有的JPA实体的子集?

我有一个拥有另一个实体的实体:

//psuedocode    
public class ClassA{
   private String name;

   @OneToOne
   private ClassB classb;
}

public class ClassB{
   private String thing1;
   private String thing2;
   private String thing3;
}
Run Code Online (Sandbox Code Playgroud)

当我检索ClassA对象时,我不想看到ClassB.thing3,但我确实想看到thing1和thing2:

{
"name":"classa",
"classb":{
         "thing1":"hi",
         "thing2":"there"
        }
}
Run Code Online (Sandbox Code Playgroud)

但如果我查询ClassB,我想看到一切:

{"thing1":"hi",
 "thing2":"there",
 "thing3":"joseph"}
Run Code Online (Sandbox Code Playgroud)

所以我不能只在thing3上放一个忽略注释,因为那时我会在第二次获取时忽略它.我尝试了Converter<ClassB>,但是这迫使我实施toString()fromString()对JSON,其死亡的JSON对象转换为Java端(转换器需要一个字符串,但得到的对象,而不是).

我想尽可能避免自己构建/解析JSON对象,如果可能的话让我的json提供者完成工作.我在约翰逊.

java json openjpa

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

如何持久保存仅包含集合和ID的实体?

我有一个问题,我不能持久或合并一个只包含一个ID和一组其他对象的对象.如果我添加另一个字段,它将正常提交事务.此外,如果我将ID生成策略更改为AUTO,它也将起作用.

我团队的其他成员使用"IDENTITY"代替"AUTO",所以我希望与他们保持一致.他们的实体不仅仅是一个ID + Collection,所以它适用于他们.以下是我想要做的工作:

@Entity
public class Filter implements Serializable {

   @Id
   @GeneratedValue( strategy = GenerationType.IDENTITY )
   private Long id;

   @OneToMany( fetch = FetchType.EAGER, orphanRemoval = true, cascade = { CascadeType.ALL } )
   private ArrayList<Rule> rules = new ArrayList<>();

   public Filter() {

   }

}
Run Code Online (Sandbox Code Playgroud)

错误信息:

org.apache.openjpa.persistence.PersistenceException: ERROR: syntax error at or near ")"
  Position: 25 {prepstmnt 693640431 INSERT INTO Filter () VALUES ()} [code=0, state=42601]
FailedObject: middle.ware.Filter@630cd05
Run Code Online (Sandbox Code Playgroud)

本质上,因为它只是一个ID和一个连接表,它在尝试持久化或合并Filter而没有任何字段时就会死掉.

解决方法

  • 将GenerationType.IDENTITY更改为GenerationType.AUTO.

    - 唯一的骗局似乎是初始启动主键跳转50,然后它开始递增1.

  • 将GenerationType更改为TABLE

    - 这似乎是AUTO选择的.

  • 向实体添加任意字段(即String test ="test").

    - 简单地让实体再增加一个字段使其持久化.但是,我不需要这个领域; …

database postgresql persistence jpa openjpa

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

JPA Criteria Builder:如何将ArrayList传递给Oracle函数?

我有一个Oracle函数,它接受一个POINTS%ROWTYPE表.我想使用CriteriaBuilder类从JPA调用此函数,该类具有数据库函数的功能.当我尝试构建查询时,它会死于抱怨ArrayLists不是函数的有效查询参数.

如何将ArrayList中的ArrayList传入Oracle函数?

Oracle函数签名:

CREATE OR REPLACE FUNCTION LOCATION_CONTAINS
(
LATITUDE_IN IN DOUBLE PRECISION,
LONGITUDE_IN IN DOUBLE PRECISION,
points IN types_pkg.point_array,
numPoints IN INTEGER
) 
Run Code Online (Sandbox Code Playgroud)

Oracle类型:

create or replace package types_pkg
as
type point_array is table of FILTERPOINT%ROWTYPE;
end types_pkg;
Run Code Online (Sandbox Code Playgroud)

JPA Criteria Builder调用

List<FilterPoint> points = getPoints(location_name);
int numPoints = points.size();

Expression ex =
           cb.function( "LOCATION_CONTAINS",
           Integer.class,
           entity.get( "latitude" ),
           entity.get( "longitude" ),
           cb.literal( points ),
           cb.literal( numPoints ) );
Run Code Online (Sandbox Code Playgroud)

例外:

org.apache.openjpa.persistence.ArgumentException: 
The specified parameter of type "class middle.ware.FilterPoint" is not …
Run Code Online (Sandbox Code Playgroud)

java oracle plsql jpa openjpa

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

如何将一个函数的验证包装在另一个函数中?

举例来说,您有一堆函数都需要检查登录验证。首先,它看起来像:

public Response createThing(){
   if(!validLogin(httpRequest, uriInfo)){
      return Response.status(Response.Status.FORBIDDEN);
   }

   //Do the function
}
Run Code Online (Sandbox Code Playgroud)

第一个代码块存在于每个服务调用的顶部,但我不知道如何将其包装到另一个函数中,因为它包含一个 return 语句。我想要类似于以下内容的东西:

public Response createThing(){
   validateLogin(httpRequest, uriInfo);

   //Do the function
}
Run Code Online (Sandbox Code Playgroud)

或者

public Response createThing(){
   //Implied check somehow?

   //Do the function
}
Run Code Online (Sandbox Code Playgroud)

我确信人们使用某种模式或惯例。谢谢。

java validation design-patterns return function

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

在操作员超载中调用函数?

我有A级,

class A{

private:
   int num;
public:
   A(int n){ num = n; };
   int getNum(){
       return num;
   }
   A operator+(const A &other){
       int newNum = num + other.getNum();
       return A(newNum);
   };
};
Run Code Online (Sandbox Code Playgroud)

为什么会other.getNum()出错?我可以other.num很好地访问other()中的变量,但似乎我不能使用任何其他函数.

我得到的错误就是这样的

参数无效:候选者是int getNum().

我可以写int test = getNum()但不是int test = other.getNum(),但我几乎可以肯定我能以other.getNum()某种方式打电话.

我忽略了什么吗?

c++ overloading class

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