小编svp*_*dga的帖子

JPA:没有EntityManager的持久性提供程序 - 标准Java应用程序

我有一个标准的Java应用程序(不是Java EE),我正在尝试学习JPA.问题是当我运行项目时,控制台输出:

1218 [main] INFO org.hibernate.ejb.Ejb3Configuration  - HHH000318: Could not find any META-INF/persistence.xml file in the classpath
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named entities
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:89)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)
at com.svprdga.test.App.main(App.java:26)
Run Code Online (Sandbox Code Playgroud)

所以我认为它没有找到我的persistence.xml文件,我已经搜索过了,我看到了涉及像WEB-INF这样的Java EE文件夹的修复程序,但这不是我的情况,我也试过了另一种解决方案,但问题仍然存在那里.

我在/ src下的META-INF中有persistence.xml,其内容是:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
  version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="entities" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.svprdga.test.database.entity</class>
    <properties>

      <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/hibtest"/>
      <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="toplink.jdbc.user" value="root"/>
      <property name="toplink.jdbc.password" value=""/>

      <!-- EclipseLink should create the database schema automatically -->
      <property name="eclipselink.ddl-generation" value="create-tables" />
      <property …
Run Code Online (Sandbox Code Playgroud)

java persistence jpa

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

Flutter Fire 中的 Firestore 动态查询

我有一个内容集合,我想在某些情况下应用某些过滤器来检索它们。

我将过滤器值存储在块对象中,该值可以为空也可以不为空。如果它为空,则不应应用过滤器,如果它有值,则应用过滤器。

我想做这样的事情:

  CollectionReference contents =
    FirebaseFirestore.instance.collection('content');

  if (_bloc.searchQuery != null && _bloc.searchQuery.isNotEmpty) {
    // Add where criteria here
  }

  if (_bloc.publishUntilQuery != null) {
    // Add where criteria here
  }

  if (_bloc.publishFromQuery != null) {
    // Add where criteria here
  }

  return StreamBuilder<QuerySnapshot>(
    stream: contents.snapshots(),
    builder:
        (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
      // ...
    },
  );
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何构造类似 Query 对象的东西以便稍后将其添加到最终搜索中。

如何解决这个问题?非常感谢。

firebase google-cloud-platform flutter google-cloud-firestore

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

从 Flutter 应用通过本地网络连接到 Firebase 函数模拟器

我正在尝试从我的测试 Android 设备连接到我的 Firebase 功能模拟器。

\n

当我运行模拟器时,输出是:

\n
\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 \xe2\x9c\x94  All emulators ready! It is now safe to connect your app. \xe2\x94\x82\n\xe2\x94\x82 i  View Emulator UI at http://localhost:4000                \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 Emulator  \xe2\x94\x82 Host:Port      \xe2\x94\x82 View in Emulator UI             \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 Functions \xe2\x94\x82 localhost:5001 \xe2\x94\x82 http://localhost:4000/functions \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n  Emulator Hub running at localhost:4400\n  Other reserved ports: 4500\n\nIssues? Report them at https://github.com/firebase/firebase-tools/issues and attach the *-debug.log files.\n
Run Code Online (Sandbox Code Playgroud)\n

在我的 Flutter 应用程序中,我执行以下操作来进行连接:

\n
FirebaseFunctions.instance.useFunctionsEmulator(origin: \'http://192.168.1.158:5001\');\n
Run Code Online (Sandbox Code Playgroud)\n

我已添加android:usesCleartextTraffic="true"到我的 AndroidManifest 和 anetwork_security_config.xml如此处此处 …

android firebase firebase-tools flutter google-cloud-functions

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

为什么在 Firestore 中写入 1 个文档需要花费 +30 次读取?

我正在使用 Firebase Firestore 创建日志系统。结构是:

  • 集合:错误
    • 错误 1 ​​的条目
    • 错误 2 的条目
    • ...

我添加一个错误,如下所示:

val error = hashMapOf(
    "datetime" to FieldValue.serverTimestamp(),
    "errorMessage" to errorMessage
)

database.collection("errors")
    .add(error)
Run Code Online (Sandbox Code Playgroud)

然后我会观察此操作如何影响成本。关于写入次数,显然增加了1次写入操作。

问题出在读取操作上。由于某种原因,执行此代码会导致:

  • 阅读次数超过30次
  • 即使我杀死了应用程序,读取计数也会随着时间的推移而不断增加。

为什么写操作要花费这么多读操作?

firebase google-cloud-platform google-cloud-firestore

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

在 Firebase Cloud Function 中复制存储文件

我正在启动一项云功能,以便复制 Firestore 中的一个寄存器。其中一个字段是图像,该函数首先尝试复制图像,然后复制寄存器。

这是代码:

export async function copyContentFunction(data: any, context: any): Promise<String> {
  if (!context.auth || !context.auth.token.isAdmin) {
    throw new functions.https.HttpsError('unauthenticated', 'Auth error.');
  }

  const id = data.id;
  const originalImage = data.originalImage;
  const copy = data.copy;

  if (id === null || originalImage === null || copy === null) {
    throw new functions.https.HttpsError('invalid-argument', 'Missing mandatory parameters.');
  }

  console.log(`id: ${id}, original image: ${originalImage}`);

  try {
    // Copy the image
    await admin.storage().bucket('content').file(originalImage).copy(
      admin.storage().bucket('content').file(id)
    );

    // Create new content
    const ref = admin.firestore().collection('content').doc(id);
    await …
Run Code Online (Sandbox Code Playgroud)

javascript google-cloud-storage firebase google-cloud-platform google-cloud-functions

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

位于屏幕中央的中心可组合项

我有一个简单的加载可组合项:

@Composable
fun Loading() {
    CircularProgressIndicator()
}
Run Code Online (Sandbox Code Playgroud)

我希望它位于屏幕中央。我搜索了文档,找到了用于构建行和列的布局,但我没有找到任何可以将视图居中于屏幕绝对中间的内容。

怎样才能实现呢?

layout android android-layout android-jetpack-compose

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