小编Chr*_*aan的帖子

为什么用@Transactional 注释的方法必须是可覆盖的

我有以下代码:

/**
 * Restored deleted partner
 */
@Transactional
public void restorePartnerById(Integer id){
    // logic      
}
Run Code Online (Sandbox Code Playgroud)

当我使方法最终

/**
 * Restored deleted partner
 */
@Transactional
public final void restorePartnerById(Integer id){
    // logic      
}
Run Code Online (Sandbox Code Playgroud)

我收到一个编译错误,说明:

注释的方法@Transactional必须是可覆盖的

我四处寻找,但我无法理解为什么它必须能够覆盖,为什么该方法必须能够覆盖?

java overriding transactional spring-transactions spring-boot

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

使用已检查异常的语言

我只是很好奇,除了Java之外还有其他语言使用检查异常吗?

我确实试图找到有关此信息,但找不到任何答案.

checked-exceptions

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

Mockito 测试预期异常

我正在尝试在 spring-boot 中测试我的服务层和存储库,为此,我使用 Mockito,作为测试的一部分,我验证任何登录请求,如果用户名或密码不正确,则会出现异常应该被扔掉。

我正在测试用户是否存在并且测试通过,但是,当用户名不存在时,我似乎无法让测试通过。这是我的 tets 代码

@Mock
UserRepository userRepository;

@InjectMocks
UserServiceImpl userServiceImpl;

Users mockUser = Mockito.mock(Users.class);

private String username = "real_user";

private String fakeUser = "fake_user";

@Before
public void setup() {
    mockUser.setUsername(username);
    mockUser.setPassword(new BCryptPasswordEncoder().encode("password"));
    mockUser.setEnabled(true);
}

/**
 * This Test Passes
 */
@Test
public void should_LoadUsersByUsername_IfUserExists() {
    Mockito.when(userRepository.findByUsername(username)).thenReturn(mockUser);
    userServiceImpl.loadUserByUsername(username);
    Mockito.verify(userRepository, Mockito.atLeastOnce()).findByUsername(username);
}

/**
 * This Test Fails
 */
@Test(expected = UsernameNotFoundException.class)
public void should_Throw_UserNameNotFoundException_If_UserIsNotFound() {
    Mockito
       .when(userRepository.findByUsername(fakeUser))
       .thenThrow(UsernameNotFoundException.class);
}
Run Code Online (Sandbox Code Playgroud)

这是我试图运行测试的代码

@Service
public class UserServiceImpl implements UserService {

@Autowired
UserRepository …
Run Code Online (Sandbox Code Playgroud)

java testing mocking mockito spring-boot

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

'Full_Name'附近的语法不正确

我希望你可以提供帮助,我正在尝试更新我的数据库文件,但我一直在收到错误,我不知道为什么,我没有任何问题添加数据或显示数据它只是更新我的数据问题可能是什么问题?

错误是:

System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near 'Full_Name'.
Run Code Online (Sandbox Code Playgroud)

这是我的源代码:

public void UpdateTable()
{
    try
    {
        string ID = Txt_IdNumber.Text;//ID Input
        string setYearFormat = Tdp_DateOfBirth.Value.ToString("yyyy");//Get only the year to calculate age
        string CurrentYear = DateTime.Now.Year.ToString();//Get current year from system settings
        int getAge = Convert.ToInt32(CurrentYear) - Convert.ToInt32(setYearFormat);//Calculate Age
        string setDOB = Tdp_DateOfBirth.Value.ToString("dd/MM/yyyy");//Set TimeDatePicker to spesific Long date
        string Query = "UPDATE UserData" +
                       "SET Full_Name = @Fullname, Date_Of_Birth = @DateOfBirth, ID_Number = @IdNumber, Age = @Age" +
                       "WHERE Id = @Id";//Update query …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server sqlexception

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