标签: database

如何协调J2EE和Java EE数据库访问?

我们有一个巨大的应用程序,它始于十年前,并且仍在积极开发中.所以有些部分仍然在J2EE 1.4体系结构中,其他部分则使用Java EE 5/6.

在测试一些新代码时,我意识到通过新旧代码部分进入的信息之间存在数据不一致,旧代码直接使用Hibernate会话而新代码注入了EntityManager.这导致了一个问题,即一部分无法从另一部分看到新数据,因此也创建了数据库记录,导致主键约束违规.

计划完全迁移旧代码以摆脱J2EE,但与此同时 - 我可以做些什么来协调这两个部分之间的数据库访问?并且不应该在应用服务器中的某个时刻在Hibernate层中两种方式结合在一起,无论是通过JPA还是直接访问?

java database hibernate jpa java-ee

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

我应该在交易中包含SELECT吗?

使用数据库事务将多个更新分组时,我是否应该在事务中包含SELECT?例如,让我说:

  1. 得到一个记录
  2. 使用记录中的数据检查该记录的编辑权限
  3. 更新一些记录
  4. 更新一些其他记录

我应该在"获取记录"阶段之前开始交易,还是围绕更新?

我正在使用Postgres/Django,transaction.atomic()但我认为这不重要.

database django postgresql transactions

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

具有多个WHERE条件的SQLite数据库查询

试图开发Windows 8.1商店应用程序.除了其他困难之外,我还需要在where子句中使用两个参数从sqlite数据库中检索记录.我可以使用where子句中的一个参数成功查询,但是当我尝试使用两个参数时它会崩溃.这是我的代码:

    public string SaveMaint(MaintViewModel Maintenance)
    {
        string result = string.Empty;
        using (var db = new SQLite.SQLiteConnection(App.DBPath))
        {
            string change = string.Empty;
            try
            {
                var existingmaintenance = db.Query<maintenance> ("select * from maintenance where VehID = ? AND MaintID = ?", new String[] {Maintenance.Maintid, Maintenance.Vehicleid});
               // var existingmaintenance = (db.Table<maintenance>().Where 
               //     (c => c.MaintID == Maintenance.Maintid).SingleOrDefault());

                if (existingmaintenance != null)
                {
                    existingmaintenance.VehID = Maintenance.Vehicleid;
                    existingmaintenance.MaintID = Maintenance.Maintid; 
                    existingmaintenance.ServiceDate = Maintenance.Servicedate;
                    existingmaintenance.ServiceCost = Maintenance.Servicecost;
                    existingmaintenance.ServiceLocation = Maintenance.Servicelocation;
                    existingmaintenance.ServiceNote = Maintenance.Servicenote;
                    existingmaintenance.ServiceOdom = …
Run Code Online (Sandbox Code Playgroud)

c# database sqlite sqlite-net

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

Postgresql:如何从每个组/类别中选择前n%(%)条目

我们是postgres的新手,我们有以下查询,我们可以从中选择每个类别的前N个记录.

 create table temp (
     gp char,
     val int
 );

 insert into temp values ('A',10);
 insert into temp values ('A',8);
 insert into temp values ('A',6);
 insert into temp values ('A',4);
 insert into temp values ('B',3);
 insert into temp values ('B',2);
 insert into temp values ('B',1);

 select a.gp,a.val
 from   temp a
 where  a.val in (
              select b.val
              from   temp b
              where  a.gp=b.gp
              order by b.val desc
             limit 2);
Run Code Online (Sandbox Code Playgroud)

上述查询的输出是这样的

 gp   val
 ----------
 A    10
 A    8
 B    3
 B    2
Run Code Online (Sandbox Code Playgroud)

但是我们的要求是不同的,我们希望从n类未固定的每个类别中选择前n%记录,n基于每个组中元素的百分比.

sql database postgresql postgresql-9.1

5
推荐指数
2
解决办法
5558
查看次数

Perl - SQLite3数据库加密

我成功地使用Perl :: DBI模块使用Perl创建了一个SQLite3数据库.我想知道是否有办法将数据库的加密添加到我现有的Perl代码中?

我仔细阅读了以下2个链接:

但提供的示例似乎只包括专有软件或C#代码(特别是这一点/sf/answers/1704459081/).

提前致谢.

database sqlite encryption perl

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

在Sybase ASE中插入多行

(与SQL Server相关的类似问题:SO Link)

我知道在Sql Server 2008或更高版本中,您可以插入多行执行以下操作:

INSERT INTO MyTable (Name, ID)
VALUES ('First',1), ('Second',2), ('Third',3)
Run Code Online (Sandbox Code Playgroud)

但是,似乎此语法在Sybase Adaptive Server Enterprise中不起作用,因为这会给我一个错误.

任何人都知道Sybase中的语法实现了同样的目的吗?

Sybase ASE基于Transact SQL ..

谢谢

sql t-sql database sql-server sybase

5
推荐指数
2
解决办法
2万
查看次数

@Transactional如何影响Hibernate中的当前会话?

这是大多数DAO中使用的典型设置:

@Transactional
@Repository
public class DAO {

   @Autowired
   SessionFactory sessionFactory;

   public void save(Entity o) {
       sessionFactory.getCurrentSession().save(o);
   }

   public Entity load(int id) {
       return (Entity)sessionFactory.getCurrentSession().get(Entity.class, id);
   }

}
Run Code Online (Sandbox Code Playgroud)

我看到只有getCurrentSession()被叫,没有openSessionclose.

因此,当我从实体返回实体时load,不能加载懒惰的集合.类似地,保存似乎总是冲洗!

@Transactional春天的注释是否能够完全打开和关闭会话和交易的魔力?

java database spring hibernate

5
推荐指数
2
解决办法
7093
查看次数

插入/更新/索引多行(100亿)数字作为值

我需要插入100亿行并多次更新它们的值.

表结构:

Column1 Column2 Count
1       1       99
1       2       10003
1       3       1
1       4       23
1       5       9994
...
99999   1       2
99999   2       2233
99999   3       5904
99999   4       12
99999   5       4598435
...
Run Code Online (Sandbox Code Playgroud)

我需要Column1编入索引.在一个表Count中,Integer在另一个表中将是Double.

什么数据库最适合我的需求?我被告知我应该使用NoSQL,但它们有很多.

sql database bigdata nosql data-structures

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

在云函数中的Parse.Cloud.httpRequest中生成并保存ParseObjects列表

所以,我正在定义一个云函数,它应该调用foursquare api并从返回的JSON生成一个餐馆列表(每个餐馆都是一个ParseObject).我成功地做到了这一点,但是在尝试将这些对象保存到我的数据库并通过调用response.success()将它们发送回我的手机时遇到了问题.下面的大代码块将列表保存到我的数据库中,但是如果我尝试的话

Parse.Object.saveAll(restaurants)
response.success(restaurants)
Run Code Online (Sandbox Code Playgroud)

我在保存所有餐馆之前结束了这个功能.我尝试使用这一行代替

Parse.Object.saveAll(restaurants).then(response.success(restaurants))
Run Code Online (Sandbox Code Playgroud)

,但只有一半的餐馆在我收到错误之前得到保存"失败:未捕获尝试使用指向未保存的新对象的对象保存对象".如果我在不尝试保存列表的情况下调用response.success(餐馆),我也会收到此错误.我读到这是解析中的一个错误,阻止某人打印或传递未保存的ParseObjects.有任何想法吗?我也尝试在http请求上使用.then,但是我遇到了同样的问题或者出现了新的错误:"com.parse.ParseException:i/o failure:java.net.SocketTimeoutException:read timed out."

Parse.Cloud.define("callFourSquare", function(request, response) {
//The Parse GeoPoint with current location for search
    var geo = request.params.location;
    var geoJson = geo.toJSON();
    var url = "https://api.foursquare.com/v2/venues/explore?ll=" + geoJson.latitude + ","
        + geoJson.longitude +         "&section=food&sortByDistance=1&limit=50&venuePhotos=1&categoryId=4d4b7105d754a06374d81259&client_id=    C043AJBWKIPBAXOHLPA0T40SG5L0GGMQRWQCCIKTRRVLFPTH" 
        + "&client_secret=Y1GZZRHXEW1I3SQL3LTHQFNIZRDCTRG12FVIQI5QGUX0VIZP&v=20140715";
        console.log(url);
    //Call to FourSquare api, which returns list of restaurants and their details
    Parse.Cloud.httpRequest({
        method: "GET",
        url: url,
        success: function (httpResponse) {
            var restaurants = [];
            var json = httpResponse.data;
            var venues = json.response.groups[0].items;
            console.log(venues.length) …
Run Code Online (Sandbox Code Playgroud)

javascript database android parse-platform

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

Laravel Custom Pivot Table关系和渴望加载?

我在为我的一个项目创建模式/模型时遇到问题,并希望在这里得到一些帮助.

我目前有3张桌子:配件,产品和数据透视表product_accessory

<?php 

Schema::create('accessories', function(Blueprint $table)
{
    $table->increments('id');
}

Schema::create('products', function(Blueprint $table) 
{
    $table->increments('id');
}

Schema::create('product_accessory', function(Blueprint $table)
{
    $table->increments('id');
    $table->integer('product_id')->unsigned();
    $table->integer('accessory_id')->unsigned();
    $table->foreign('product_id')->references('id')->on('products');
    $table->foreign('accessory_id')->references('id')->on('accessories');
}
Run Code Online (Sandbox Code Playgroud)

现在问题是我需要添加另一种产品类型'适配器',它最终将取决于数据透视表关系,即适配器需要与产品和附件相关...

更新 以下是我当前的product_accessory_adaptor表的方式

Schema::create('product_accessory_adaptor', function(Blueprint $table)
{
    $table->increments('id');
    $table->integer('product_accessory_id')->unsigned();
    $table->foreign('product_accessory_id')->references('id')->on('product_accessory');
}
Run Code Online (Sandbox Code Playgroud)

这样,我就可以拥有许多与产品和配件相关的适配器.我的问题是如何在雄辩中模拟这种关系?

这就是我现在拥有的:

自定义枢轴模型:

class ProductAccessory extends Pivot {
   protected $table = 'product_accessory';

   public function product()
   {
      return $this->belongsTo('Product');
   }

   public function accessory()
   {
     return $this->belongsTo('Accessory');
   }

   public function adaptors() {
     return $this->hasMany('Adaptor', 'product_accessory_id'); 
   } 
}
Run Code Online (Sandbox Code Playgroud)

产品和附件模型

class Accessory extends Eloquent {

   public function products() …
Run Code Online (Sandbox Code Playgroud)

database laravel eloquent

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