编译时,我收到此错误
The imported project "C:\Program Files (x86)\MSBuild\Microsoft\Portable\Microsoft.Portable.CSharp.targets" was not found.
如果我发表评论,我明白了
The <TargetFrameworkIdentifier> for a portable project must be .NETPortable.
有什么想法是什么?应该去哪里?
另外,奇怪的是,第一个错误中的Portable目录甚至不存在于我的硬盘驱动器上.有谁知道如何把它放回去?这也在我的主PC上......
任何版本的VS(13和15)都会出现这种情况,我甚至已经卸载并重新安装了VS.
VS安装日志还表明它无法找到Portable类来更新它,然后无法更新它.我以为这与Portable目录缺失直接相关.还有其他原因吗?我将尝试获取失败的安装程序日志.
看了一下日志文件,看来我有注册表问题.
Set_Warning: PkgDef encountered data collision in section 'HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\NewProjectTemplates\TemplateDirs\{fe426dcb-ff5c-44a9-b84d-24cf031ba095}\/1' for value '' Source="VisualStudio"
谢谢
描述
有PersonRepository和Person实体,
Person类包含List<Qualification>。Qualification该类有3个简单字段。
我尝试@Query在自定义方法上添加注释,并使用JPQL来获取结果,但是QualificationJPQL中无法使用类字段进行操作,因为它的存储库本身包含List<Qualification>而不是的简单字段Qualification。
如何通过这些“资格”的嵌套字段进行搜索?
询问
现在,我需要查找资格证书的experienceInMonths大于3且小于9并且资格证书的名称字段='java'的人员实体列表。
码
人.java
@Data
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
@NotEmpty
@Size(min = 2)
private String name;
@NotEmpty
@Size(min = 2)
private String surname;
@ElementCollection(targetClass = java.util.ArrayList.class, fetch = FetchType.EAGER)
private List<Qualification> qualifications = new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)
PersonRepository.java
@Repository
public interface PersonRepository extends JpaRepository<Person, String> {
}
Run Code Online (Sandbox Code Playgroud)
Qualification.java
@Data
@AllArgsConstructor
public …Run Code Online (Sandbox Code Playgroud) 我有使用 Keycloak 3.1.x 的应用程序,该应用程序使用以下依赖项与 Keycloak 远程交互:
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>3.4.1.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该应用程序使用 Spring Boot,在 Controller 中我们得到两个参数:
现在在后端,我们必须验证旧密码是否与存储在 Keycloak 中的密码匹配,然后最终应用新密码。
我知道有一个端点/auth/admin/{realm}/account允许用户更改他的密码,但我需要后端的功能。
The dependency uses RestClient under the hood and from what I found in https://issues.jboss.org/browse/KEYCLOAK-943, the Keycloak does not provide REST API for the account console.
Does anybody know if it is possible to validate the old password from the Keycloak Admin API?
EDIT:
Maybe there is a way of getting user's old password and trying …
我正在Spring Boot Java应用程序中为服务类构建单元测试.
服务类对返回JSON响应的REST API服务进行外部调用.我正在用Mockito嘲笑这个电话.我在mockserver响应中硬编码JSON.
这是一种不好的做法,在单元测试中使用硬编码的JSON吗?如果JSON结构发生变化,那么测试失败就是我的推理.有没有更好的,最好的做法在哪里这样做?
下面的示例代码段:
实际的代码是实用的,我只是编辑了这个片段,为了简洁起见,所以如果您发现任何错误,请发表评论:
public class UserServiceTest extends TestCase {
private static final String MOCK_URL = "baseUrl";
private static final String DEFAULT_USER_ID = "353";
UserService classUnderTest;
ResponseEntity<Customer> mockResponseEntity;
MockRestServiceServer mockServer;
@Mock
RestTemplate mockRestTemplate;
public void setUp() throws Exception {
super.setUp();
classUnderTest = new UserRestService();
mockRestTemplate = new RestTemplate();
mockServer = MockRestServiceServer.createServer(mockRestTemplate);
ReflectionTestUtils.setField(classUnderTest, "restTemplate",
mockRestTemplate);
ReflectionTestUtils.setField(classUnderTest, "userSvcUrl",
MOCK_URL);
}
public void testGetUserById() throws Exception {
mockServer.expect(requestTo(MOCK_URL + "/Users/" + DEFAULT_USER_ID)).andExpect(method(HttpMethod.GET))
.andRespond(withSuccess(
"{\n" +
" \"UserCredentials\": {\n" + …Run Code Online (Sandbox Code Playgroud) 是否必须将内部try-with-resources或其中一个try-with-resources中的所有内容自动关闭?
try (BasicDataSource ds = BasicDataSourceFactory.createDataSource(dsProperties)) {
// still necessary for Connection to close if inside
// try-with-resources?
try (Connection conn = ds.getConnection()) {
String sql = "SELECT * FROM users";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
System.out.println(rs.getString("email"));
System.out.println(rs.getString("password"));
}
}
}
}
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我的问题是为什么以下程序:
// Java program to demonstrate working of split(regex,
// limit) with high limit.
public class GFG
{
public static void main(String args[])
{
String str = "geekss@for@geekss";
String [] arrOfStr = str.split("s", 5);
}
}
Run Code Online (Sandbox Code Playgroud)
将字符串拆分"geekss@for@geekss"为5个子串:{"geek", "", "@for@geek", "", ""}.据我说,应该有4个子串:{"geek", "","@for@geek", ""}.有人可以澄清我的怀疑吗?
java ×5
spring ×2
spring-boot ×2
.net ×1
datasource ×1
jpa ×1
junit ×1
keycloak ×1
mockito ×1
msbuild ×1
security ×1
split ×1
spring-data ×1
string ×1
unit-testing ×1