我正在获得
的例外java.lang.ClassCastException: com.chat.dao.model.PGUserRoles cannot be cast to com.querydsl.core.Tuple
我的代码似乎是正确的。
JPAQuery<Tuple> query = new JPAQuery<Tuple>(entityManager);
QPGUserRoles pgUserRoles = QPGUserRoles.pGUserRoles;
List<Tuple> dataList = query
.from(pgUserRoles)
.where(isRoleName(userRolesDTO.getRoleName()),
isRoleType(userRolesDTO.getRoleType()),
isStatus(userRolesDTO.getStatus()),
isStatusNotEq()
)
.offset(offset)
.limit(limit)
.orderBy(orderByRoleIdDesc())
.fetch();
UserRolesDTO userData = null;
for (Tuple tuple : dataList) {
userData = new UserRolesDTO();
userData.setRoleId(tuple.get(pgUserRoles.roleId));
userData.setRoleName(tuple.get(pgUserRoles.roleName));
userData.setRoleType(tuple.get(pgUserRoles.roleType));
userData.setStatus(tuple.get(pgUserRoles.status));
userRoleList.add(userData);
}
抛出异常与for
我不明白为什么会引发异常。元组是通用查询结果投影。 中的示例类似于我的示例。 我使用的是querydsl 4.2.1版本。
答案 0 :(得分:0)
查询将返回PGUserRoles的列表,即列表
我不知道什么是Tuple,但显然是允许的,因为方法返回List,但不从返回的参数中而是从提供的生成类中获取list的实际参数。可能是错误的设计或Java限制。
在所有情况下,您都必须更改代码。您的代码不正确,仅仅是因为它会编译:)
upd:元组是Select语句的投影。您不使用它-结果有所不同;)
答案 1 :(得分:0)
好吧,所以在修改我的代码后,在wrt v4上做了一点修改。现在正在工作。谢谢大家的支持。
public partial class Form2 : Form
{
private Form1 form1;
public Form2()
{
InitializeComponent();
}
private void btn_search_Click(object sender, EventArgs e)
{
if (rb_Artist.Checked == true)
{
String ConnectionString = form1.getConnectionString();
SqlConnection con = new SqlConnection(ConnectionString);
SqlDataAdapter sqa = new SqlDataAdapter("SELECT * FROM tblArtist where Name like" + txt_search.Text, con);
DataTable dt = new DataTable();
sqa.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}