我试图通过反射接收字段值.问题是我不知道字段类型,必须在获取值时决定它.
此代码导致此异常:
无法将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)
我怎样才能做到这一点?
我使用JPA规范和Hibernate作为我的供应商.我需要以某种方式将生成的SQL Query发送到DB(打印到sysout)并将其保存为一个简单的字符串.
有没有办法做到这一点?
编辑
让我更清楚一点:我不需要休眠日志.我需要能够在不同的DB上执行相同的查询.因此,我需要按原样获取SQL查询,并将其保存在普通的String变量中.
编辑2
是否有一个util我可以提供一个bean,它会自动生成一个Insert查询?我能以某种方式在这里使用Hibernate bean吗?我知道这是一个复杂的节拍.
谢谢,
Idob
我的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 ..
我可以这样做吗?
我使用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
我用这个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只是不识别它们.
请帮忙.
在Hibernate中,我可以使用@NaturalId实体的几个属性创建一个唯一键.
是否有JPA等效注释,是什么的一部分javax.persistence?
这是我抽象的父亲:
@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注释?
我的问题不是新问题,我找到了几个关于它的线索,但没有人对我有帮助.我希望这个会.
我不能用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.这个好吗?
有什么想法吗?
我做
我有一个映射的超类,它有一个字段,我的数据库中的一些表共享.
我希望用@Transient注释这个字段,这样大多数实体都会忽略它,但de- @ Transient或un- @ Transient它在子实体上.
这可能吗?
谢谢,Idob
我有一个对象流,我想通过以下方式收集.
假设我们正在处理论坛帖子:
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)
这可能吗?
java ×6
hibernate ×3
jpa ×3
cxf ×1
debugging ×1
eclipse ×1
java-8 ×1
java-stream ×1
maven ×1
mockito ×1
naturalid ×1
reflection ×1
spring-boot ×1