小编Ido*_*ash的帖子

反射泛型获取字段值

我试图通过反射接收字段值.问题是我不知道字段类型,必须在获取值时决定它.

此代码导致此异常:

无法将java.lang.String字段com .... fieldName设置为java.lang.String

Field field = object.getClass().getDeclaredField(fieldName);
field.setAccessible(true);

Class<?> targetType = field.getType();
Object objectValue = targetType.newInstance();

Object value = field.get(objectValue);
Run Code Online (Sandbox Code Playgroud)

我试图施放,但我得到编译错误:

field.get((targetType)objectValue)
Run Code Online (Sandbox Code Playgroud)

要么

targetType objectValue = targetType.newInstance();
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

java reflection

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

如何获取JPA生成的SQL查询?

我使用JPA规范和Hibernate作为我的供应商.我需要以某种方式将生成的SQL Query发送到DB(打印到sysout)并将其保存为一个简单的字符串.

有没有办法做到这一点?

编辑

让我更清楚一点:我不需要休眠日志.我需要能够在不同的DB上执行相同的查询.因此,我需要按原样获取SQL查询,并将其保存在普通的String变量中.

编辑2

是否有一个util我可以提供一个bean,它会自动生成一个Insert查询?我能以某种方式在这里使用Hibernate bean吗?我知道这是一个复杂的节拍.

谢谢,

Idob

jpa spring-data-jpa

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

Spring Boot控制目标JAR文件名

我的Spring Boot项目有构建描述:

<build>

    <plugins>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.surefire</groupId>
                    <artifactId>surefire-junit47</artifactId>
                    <version>2.18.1</version>
                </dependency>
            </dependencies>
        </plugin>

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>com.app.MainClass</mainClass>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

我希望我的JAR文件名app-1.0-SNAPSHOT.jar在一个分支中,1.0-RELEASE.jar在另一个分支中,由Jenkins控制(使用某种mvn设置或JVM参数,如-D ..

我可以这样做吗?

java maven spring-boot

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

Apache CXF - 在In和Out拦截器之间共享数据

我使用Apach CXF作为REST提供程序.

我想在进入Web服务时收集数据,在输入resposne之前收集数据并在响应中添加一些计算.对于这个问题而言,为了简单起见,我们假设我想获得进入时的开始时间,发送响应之前的结束时间,并将总时间添加到响应中.

现在,我该怎么做?我创建了In和Out拦截器,它们可以单独使用,但是如何在Out拦截器中使用In拦截器中的数据呢?

谢谢Idob



更新:

我尝试将数据设置为上下文参数

message.setContextualProperty(key,value);
Run Code Online (Sandbox Code Playgroud)

但我得到的是NULL

message.getContextualProperty(key);
Run Code Online (Sandbox Code Playgroud)

我也尝试了同样但只是

message.put(key,value) and message.get(key)
Run Code Online (Sandbox Code Playgroud)

没用.

想法是谁?

谢谢,Idob

java cxf

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

Mockito方法无法访问

我用这个maven线在我的项目上设置了mockito:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>1.8.5</version>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我没有使用@Mock注释的问题,但我无法访问和使用mockito方法,如:

when(someMock.someMethod()).thenReturn();
Run Code Online (Sandbox Code Playgroud)

Eclipse只是不识别它们.

请帮忙.

mockito

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

JPA相当于Hibernate的@NaturalId

在Hibernate中,我可以使用@NaturalId实体的几个属性创建一个唯一键.

是否有JPA等效注释,是什么的一部分javax.persistence

hibernate jpa naturalid

9
推荐指数
2
解决办法
7866
查看次数

如何覆盖hibernate集合连接列?

这是我抽象的父亲:

@MappedSuperclass   
public abstract class AbstractEntity implements Serializable {

    @OneToMany(fetch = FetchType.LAZY)
    @JoinColumn(name = "entity_no", referencedColumnName = "MY_COLUMN")
    private Set<CLASS_TYPE> list; 
}
Run Code Online (Sandbox Code Playgroud)

我的所有实体都有这个集合,但每个实体都有不同referencedColumnName.

有没有办法只覆盖@JoinColumn注释?

java hibernate

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

Eclipse跳过断点

我的问题不是新问题,我找到了几个关于它的线索,但没有人对我有帮助.我希望这个会.

我不能用eclipse调试.它识别断点,切换到调试视图,但不知何故它不同步,我无法调试我的代码.有时它有效,但过了一段时间又发生了.

我使用JDK 1.6.0_24,Glassfish 3.1,eclipse INDIGO(但它也发生在HELIOS上).

我尝试(正如我在本网站中找到的)设置eclipse以使用Parallel GC.我试过把它放在eclipse.ini文件中,我试图把它放在glassfish VM参数中,我试着把它放在eclipse JDK的其他VM参数上(首选 - >安装JRE-> JDK - >等).似乎没有什么对我有用.我也一起试过它们.

请帮帮我..

Ido,先谢谢大家



编辑:

好的,我注意到了更多的东西:

在Debug视图中,在我的stck跟踪中,我发现断点的确切类被暂停,并且它有这个注释:"(XX处的暂停断点)".当我点击该线时,突然出现绿线.然而,一旦我点击F6继续,它再次失去同步,只是下一行被暂停.奇怪的.

我检查了计算机上运行的进程,发现有几个"java.exe"进程同时运行.(eclipse在javaw.exe上运行).也许这就是为什么glassfish和eclipse拒绝合作的原因.

我检查了构建路径,发现这是我的输出文件夹:project-name/target/classes.这个好吗?

有什么想法吗?

我做

java eclipse debugging

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

Hibernate覆盖@transient

我有一个映射的超类,它有一个字段,我的数据库中的一些表共享.

我希望用@Transient注释这个字段,这样大多数实体都会忽略它,但de- @ Transient或un- @ Transient它在子实体上.

这可能吗?

谢谢,Idob

hibernate jpa

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

Java 8复杂的自定义收集器

我有一个对象流,我想通过以下方式收集.

假设我们正在处理论坛帖子:

class Post {
    private Date time;
    private Data data
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个列表,按时间段对帖子进行分组.如果X分钟没有帖子,请创建新组.

class PostsGroup{
    List<Post> posts = new ArrayList<> ();
}
Run Code Online (Sandbox Code Playgroud)

我希望得到一个List<PostGroups>按时间间隔分组的帖子.

例如:间隔10分钟.

帖子:

[{time:x, data:{}}, {time:x + 3, data:{}} , {time:x+ 12, data:{}, {time:x + 45, data:{}}}]
Run Code Online (Sandbox Code Playgroud)

我想获得一个帖子组列表:

[
 {posts : [{time:x, data:{}}, {time:x + 3, data:{}}, {time:x+ 12, data:{}]]},
{posts : [{time:x+ 45, data:{}]}
]
Run Code Online (Sandbox Code Playgroud)
  • 注意第一组持续到X + 22.然后在X + 45收到一个新帖子.

这可能吗?

java java-8 java-stream

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