有人请帮助我选择是否使用hibernate或cayenne来比较它们如何处理大型数据库.这是更适合处理大型数据库的.
谢谢
我们正在为我的项目评估ORM解决方案,该解决方案在业务层和数据层(JDBC)之间具有紧密耦合.我开始用Cayenne做一个PoC.我的要求是这样的a)已经存在数据库模式b)模式是非常精细的级别.即实时java对象仅通过组合表来派生.c)目前我只想执行读取操作(通过输入标准对列表进行精确过滤和排序)
到目前为止,我对Cayenne所做的观察是:1)表和对象是紧密耦合的.Modeler不允许在没有关联表的情况下创建java对象.2)我找不到简单的方法将命名查询的输出映射到java对象,以便以应用程序需要的方式获取列表.3)我也不确定Expressions是否可以使用命名查询.
我想知道您对我的要求的最佳选择吗?
先感谢您.
我正在尝试构建我的pom.xml,以便在运行'mvn install'时自动创建我的数据库模式.我正在使用"maven-cayenne-plugin"来做到这一点.这是插件被调用(在集成测试阶段),因为我可以看到输出.但是mojo失败了,除了:(我用-e和-X标志来看这个).
java.lang.ClassNotFoundException: org.apache.derby.jdbc.ClientDriver
Run Code Online (Sandbox Code Playgroud)
(如果我尝试使用EmbeddedDriver,我会得到相同的内容,无论我是否包含'derbyclient'或简单地'derby'作为我的依赖项).
这是一个应该复制问题的pom.xml.我在Windows上使用MVN 3.[Apache Maven 3.0.4(r1232337; 2012-01-17 08:44:56 + 0000)]
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>myproject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.cayenne.plugins</groupId>
<artifactId>maven-cayenne-modeler-plugin</artifactId>
<version>3.2M1</version>
</plugin>
<plugin>
<groupId>org.apache.cayenne.plugins</groupId>
<artifactId>maven-cayenne-plugin</artifactId>
<version>3.2M1</version>
<executions>
<execution>
<id>cgen</id>
<configuration>
<superPkg>com.mycompany.model.generated</superPkg>
<map>${project.build.sourceDirectory}/../resources/datamap.map.xml</map>
<destDir>${project.build.sourceDirectory}</destDir>
</configuration>
<goals>
<goal>cgen</goal>
</goals>
</execution>
<execution>
<id>cdbgen</id>
<configuration>
<map>${project.build.sourceDirectory}/../resources/datamap.map.xml</map>
<driver>org.apache.derby.jdbc.ClientDriver</driver>
<url>jdbc:derby:memory:tracedb;create=true</url>
<username>test</username>
</configuration>
<goals>
<goal>cdbgen</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.10.1.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
这还需要一个有效的cayenne"datamap.map.xml"文件(在src/main/resources中),这是我之前做的一个:
<?xml version="1.0" encoding="utf-8"?>
<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd" …
Run Code Online (Sandbox Code Playgroud) 我是Apache Cayenne的新手,我正在尝试我的第一个项目.我正在尝试使用CayenneModeler 的工具>重新设计数据库架构功能来反向设计SQL Server数据库.
我试图创建一个新的"已保存的数据源".我从其适配器列表中选择了"org.apache.cayenne.dba.sqlserver.SQLServerAdapter",并且CayenneModeler自动填写了JDBC Driver字段并添加了一个示例DB URL.我修改了DB URL,提供了用户名/密码,单击"继续",然后我收到以下错误:
驱动程序加载错误:com.microsoft.sqlserver.jdbc.SQLServerDriver
我认为这意味着CayenneModeler默认情况下确实有sqlserver的驱动程序(?)但我没有看到将CayenneModeler指向任何其他驱动程序的方法......
任何Cayenne专家知道我可能做错了什么?有没有办法给CayenneModeler提供所需的驱动程序,假设这是问题?或者如果失踪的司机不是问题,有谁知道是什么?
我再次需要你的帮助。我正在尝试将我的 java 网站上线。
我用什么:
用于查询的数据包太大 (4739923 > 1048576)。您可以通过设置 max_allowed_packet' 变量在服务器上更改此值。
我尝试过的:
1.就像错误所说的那样,我尝试通过执行以下操作来更改服务器上的值:
mysql -u root
SET GLOBAL max_allowed_packet=1073741824;
/etc/init.d/mysql restart
但我仍然有错误。
2.我查看了:如何更改 max_allowed_packet 大小
但是,当我执行此操作时nano /etc/mysql/my.cnf
,文件看起来像(我没有任何 [mysql]):
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Nov 10 23:57:02 2017 from 82.236.220.195
root@XXXX:~# …
Run Code Online (Sandbox Code Playgroud)