我不知道为什么,但Android Studio找不到我的DatabaseView。即使我安装其他项目
这是数据库视图。它在一个名为LibroDatos的类中创建。
package com.example.pruebaexamenroom;
import androidx.room.DatabaseView;
@DatabaseView(value = "SELECT libro.id, libro.titulo, libro.autor," +
"libro.idCliente,cliente.name as nombreCliente FROM libro " +
"INNER JOIN Cliente ON libro.idCliente = cliente.idHumano",
viewName = "v_LibroDatos")
public class LibroDatos {
public int id;
public String Titulo;
public String Autor;
public int idCliente;
public String nombreCliente;
}
这就是道,这里就是说不存在的地方
package com.example.pruebaexamenroom;
import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Transaction;
import java.util.List;
@Dao
public interface DaoLibro {
@Transaction
@Query("SELECT * FROM v_LibroDatos")
List<LibroDatos> obtenerLibros();
@Insert
void InsertarLibro(Libro...libros);
@Query("UPDATE libro SET titulo =:titulo,autor=:autor WHERE id =:id")
void updateLibro(int id,String titulo,String autor);
@Query("DELETE FROM libro")
void borrarLibro();
}
这是AppDatabase。它的所有声明都在这里。
package com.example.pruebaexamenroom;
import androidx.room.Database;
import androidx.room.RoomDatabase;
@Database(
entities = {Libro.class, Cliente.class},
views = {LibroDatos.class},
version = 1
)
public abstract class AppDatabase extends RoomDatabase {
public abstract DaoCliente daoCliente();
public abstract DaoLibro daoLibro();
}
1条答案
按热度按时间nwsw7zdq1#
我相信您可以忽略这个错误,并且项目将成功编译。
如果在编写obtenerLibros Query时为视图键入v,您将看到它在提示完成时知道,例如:
但仍然将其标记为错误。然而,它成功地编译了。
注意如果您查看构建日志,则会看到警告:-
所以你不妨
1.包括
@RewriteQueriesToDropUnusedColumns
注解1.将LibroDatos类中的成员变量重命名为小写。
对于1:-
第2名:-