小编cod*_*aig的帖子

Hibernate:对MySQL使用反引号,但对HSQL使用反引号

我工作的项目(使用Java,Spring,Hibernate)最近从Oracle改为MySQL.在某些情况下,代码中的某些属性是MySQL中的保留字,例如"release".

有一些解决方案,1)重命名代码中的属性和后续的getter/setter方法,还更新调用这些方法的代码2)使用@Column(name ="`release`")在代码中注释属性.这告诉hibernate在与数据库交谈时引用该名称.

我宁愿远离第一种方法来减少破坏更多东西的机会.第二种方法是"ok",除了它特定于MySQL.在我们的开发中.设置我们使用HSQL,它不喜欢这些列名称的反引号.

我查看了org.hibernate.mapping.Column类,我发现它有"getQuotedName"方法,如果我可以继承Column并告诉Hibernate使用我自己的Column类,我可能会覆盖这些方法.

基于以下首选方法解决此问题的最佳方法是:a)不必重构代码库(b/c更改属性名称,getter/setter方法等)和b)希望应用程序仍然可以在HSQL中工作MySQL的.

在属性文件中具有可以切换以打开/关闭某些列命名修复的属性是合理的.这提醒我,我尝试使用自定义命名策略并覆盖"columnName"方法来围绕反引号中的列名称...这不起作用,即使在MySQL上也是如此.

java mysql spring hibernate hsqldb

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

使用Hibernate持久化原始Java Enum

我有一个包含枚举属性的实体.该属性可以是我的代码库中的任何一种类型的枚举:

public enum AutomobileType {
   CAR, TRUCK, MOTORCYCLE
}

public enum BoatType {
   ROW_BOAT,YACHT,SHIP
}

@Entity
public class FooBar {

  @Enumerated(value=EnumType.ORDINAL)
  private Enum enumValue;

  public void setEnumValue(Enum value) { ... }
  public Enum getEnumValue() { ... }
}
Run Code Online (Sandbox Code Playgroud)

这失败了,有一个例外,"错误的数据类型:对于输入字符串:"[B @ f0569a".我改变了FooBar将属性存储为有效的整数,但这不是我需要的.我需要实际的枚举.任何建议关于如何使这个工作,以便枚举可以作为int持久化,但后来拉出正确的枚举类型?

java enums hibernate jpa

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

SVN合并分支从一个回购到其他回购的主干

我有两个存储库,它们位于不同的服务器上,称为repo-1和repo-2.

要开始这两个"中继"是相同的:

repo-1/trunk == repo-2/trunk

同时更改被提交到repo-1/trunk,我正在努力并对repo-2/trunk进行更改.

现在我需要将repo-1/trunk中的更改合并到repo-2/trunk中.

我以为我会将repo-1/trunk复制到repo-2/tags/r1_20090224,然后将该标签合并到我的repo-2/trunk的本地工作副本中(即c:\ dev\repo2-trunk).

有关如何做到这一点的任何建议?我正在尝试使用TortoiseSVN并执行"合并两个不同的树",我使用了以下设置:

来自:repo-2/trunk到:repo-2/tags/r1_20090224工作副本:c:\ dev\repo2-trunk

我也试过交换"从"和"到"...但没有运气.通过尝试这两个合并选项中的任何一个,我最终得到以下结果:

  1. 如果我从主干到标签合并(进入我的本地副本repo-2/trunk),我会丢失主干更改并获得标签更改.

  2. 如果我从标签合并到主干(进入我的本地副本repo-2/trunk),我会丢失标签更改并保持我的主干更改.

有什么建议吗?

svn tortoisesvn merge

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

嵌套事务用例中的外部事务看不到数据库中持久的更新(JPA、MySQL、Spring Framework 和 Hibernate)

我有一个案例,事务启动后(在代码中)调用一个方法来启动新事务。当内部事务完成时,数据将持久保存在数据库中,但数据对外部事务不可见。

这是代码片段..

@Transactional(readOnly = true)
public void doSomething() {
    // Some stuff happens here
    doMoreStuff();
    // Some more stuff happens here.
}

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void doMoreStuff() {
    ...
}
Run Code Online (Sandbox Code Playgroud)

“doMoreStuff”方法更新数据库中的一些数据,之后“doSomething”方法需要查看更新的数据,但事实并非如此。例如,“doMoreStuff”将布尔值从 false 设置为 true 并保留它。“doSomething”方法仍然只将值视为 false。

有什么建议么?

java mysql spring hibernate jpa

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

如何将现有的Rails应用程序嵌入/挂载到另一个Rails应用程序中?

我有两个Rails应用程序(使用rails 3.0.7),称之为"blog"和"auth".我想从"博客"安装"auth",以便我可以运行"博客"应用并将某些请求路由到"auth"应用.

似乎我需要嵌入或者可能创建一个"引擎",但我并不是百分之百确定哪个是正确的.

如何在"博客"应用程序中嵌入"auth"应用程序?

ruby-on-rails ruby-on-rails-3

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

我可以使用gollum创建一个不是由Github托管的wiki吗?

我想用gollum创建一个wiki并将其推送到我自己的git repo,这可能吗?

我创建了一个新的git repo,安装gollum并启动它.我得到了"编辑/主页"页面.我添加了一些内容,保存......一切都很好看.甚至"修订历史"也表明修订已经发生.

然后我停止了gollum,发现我的git repo没有什么新东西,我甚至检查过是否有东西被推了......没什么.我不确定它在存储我运行时添加的内容的方式/位置.

有任何想法吗?

谢谢

ruby gollum-wiki

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

如何避免Web层和服务层中的重复验证?

如果我有一个Web应用程序,说我正在使用Spring MVC,我在表单和控制器中添加验证.如果客户端以其他方式访问我的应用程序(通过REST服务等),我可能也会在我的服务层中进行验证.在这种情况下,我可能在多个地方都有验证逻辑/代码.

是否有建议的方法来保持验证部分DRY?

java validation spring-mvc

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

Rails 3 Unobtrusive JavaScript - 处理JSON响应

我有一个简单的搜索表单,看起来像:

应用程序/视图/搜索/ index.html.erb

<%= form_for @search, :as => :search, :remote => true, :url => {:action => "query"}, :html => {:id => 'search-form'} do |f| %>
  ...
<% end %
Run Code Online (Sandbox Code Playgroud)

*应用程序/控制器/ search_controller.rb*

def index
  @search = SearchCriteria.new
end

def query
  @search = SearchCriteria.new(params[:search])

  unless @search.valid?
    respond_to do |format|
      format.json { render :json => {:error => 'validation failed'}, :status => 400 }
    end
    return
  end

  # otherwise, perform search...

  render :json => @results
end
Run Code Online (Sandbox Code Playgroud)

公共/ Java脚本/ application.js中

$(function() {
    $('search-form')
        .bind('ajax:success', function(e, …
Run Code Online (Sandbox Code Playgroud)

jquery ruby-on-rails-3

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

Rails 3 - 渲染部分js.erb

我有一个简单的搜索表单,看起来像:

应用程序/视图/搜索/ index.html.erb

<%= form_for @search, :as => :search, :remote => true, :url => {:action => "query"}, :html => {:id => 'search-form'} do |f| %>
  ...
<% end %

<div id="search-results"></div>
Run Code Online (Sandbox Code Playgroud)

*应用程序/控制器/ search_controller.rb*

def index
  @search = SearchCriteria.new
end

def query
  @search = SearchCriteria.new(params[:search])

      # otherwise, perform search...
  @summaries = do_search @search
  respond_to do |format|
    format.js
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我有一个js.erb模板:*app/views/search/_query.js.erb*

$('#search-results').update("<%= escape_javascript(render(@summaries)) %>");
Run Code Online (Sandbox Code Playgroud)

但是,我没有看到任何被放入'搜索结果'div的内容.我需要某种模板来呈现"@summaries"吗?如果是这样,它会被命名,我将它放在哪里(即app/views/search?)(我正在使用jquery和rails 3)

谢谢.

jquery ruby-on-rails-3

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

删除/取消定义另一个模块包含的类方法

我想删除一个通过include函数添加到我的类的类方法.例如:

class Foo
    include HTTParty

    class << self
      remove_method :get
    end
end
Run Code Online (Sandbox Code Playgroud)

这不起作用,它说"get"不是Foo的方法.基本上,"get"方法是HTTParty模块提供的,我想删除它.我尝试了几次没有运气的尝试.我读过/试过的东西:

ruby metaprogramming

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