如果不使用JPA映射,可以使用原生的SQL语句来删除1:1关联的父表和子表实体。以下是一个示例代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DeleteEntities {
public static void main(String[] args) {
int parentId = 1; // 父表实体ID
int childId = 1; // 子表实体ID
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/database_name";
String username = "username";
String password = "password";
// 删除子表实体
try (Connection connection = DriverManager.getConnection(url, username, password)) {
String deleteChildQuery = "DELETE FROM child_table WHERE id = ?";
PreparedStatement deleteChildStatement = connection.prepareStatement(deleteChildQuery);
deleteChildStatement.setInt(1, childId);
deleteChildStatement.executeUpdate();
System.out.println("子表实体删除成功!");
} catch (SQLException e) {
System.out.println("子表实体删除失败:" + e.getMessage());
}
// 删除父表实体
try (Connection connection = DriverManager.getConnection(url, username, password)) {
String deleteParentQuery = "DELETE FROM parent_table WHERE id = ?";
PreparedStatement deleteParentStatement = connection.prepareStatement(deleteParentQuery);
deleteParentStatement.setInt(1, parentId);
deleteParentStatement.executeUpdate();
System.out.println("父表实体删除成功!");
} catch (SQLException e) {
System.out.println("父表实体删除失败:" + e.getMessage());
}
}
}
请注意,上述代码中的数据库连接信息需要根据实际情况进行修改,包括数据库URL、用户名和密码。另外,需要根据实际的表名和字段名修改SQL查询语句。