我有一个表,类和另一个我称之为"课程"的表 - 也就是说,某个特定人在特定地方教授的课程.我想拉一个表,基本上只是根据某些课程参数向我显示哪些类是活动的.例如:
CLASSES
class_id|class_name
--------|------------
1|Class One
2|Class Two
3|Different Class
etc...
COURSES
course_id|class_id|room
---------|--------|--------
1| 3| 1
2| 3| 2
3| 1| 1
4| 3| 1
5| 3| 2
6| 2| 1
etc...
我想知道是否有一种方法可以让我只想SELECT classes.* FROM classes JOIN courses ON classes.class_id=courses.class_id WHERE courses.room=1返回每个类的一个实例.发生的事情是我只获得了在1号房间发生的课程,但我得到了每个课程的多个实例,因为在课堂1的课程表中有多个该课程的实例.
我已经尝试了各种不同的JOIN- 左,右,内等 - 而且因为我是根据另一张桌子的规格从一张桌子拉出来的,所以它们似乎都给了我相同的结果.
所以我得到了:
class_id| class_name |course_id|room
--------|--------------|---------|--------
1|Class One | 3| 1
2|Class Two | 6| 1
3|Diferent Class| 1| 1
3|Diferent Class| 4| 1
etc...
但我想得到:
class_id| class_name …
在Grails中保存Trip的实例时,我得到以下异常:
2011-01-26 22:37:42,801 [http-8090-5] ERROR errors.GrailsExceptionResolver - 对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例:Rower org.hibernate.TransientObjectException:object引用未保存的瞬态实例 - 在冲洗之前保存瞬态实例:Rower
这个概念很简单:对于一个游船,你需要一些划船者,一个舵手(也是一个划船者)和一艘船:
旅行看起来像(缩短):
class Trip {
Boat boat;
Rower coxwain;
static belongsTo = [Rower,Boat]
static hasMany = [rowers:Rower]
}
Run Code Online (Sandbox Code Playgroud)
和划船(缩短)
class Rower {
String firstname;
String name;
Rower reference;
static hasMany = [trips:Trip];
static mappedBy = [trips:"rowers"]
}
Run Code Online (Sandbox Code Playgroud)
然后行程保存在控制器中,如:
def save = {
def trip = new Trip(params)
// adding Rowers to Trip
if (params.rower instanceof String) {
def r = Rower.get(params?.rower)
if (r != null) {
trip.addToRowers(r) …Run Code Online (Sandbox Code Playgroud) 如何在Windows Vista和7上以编程方式触发Flip 3D?
是否有一个API,如果是这样,它的名称是什么,我在哪里可以找到相关的功能?(我需要一个特定的答案,例如指向实际功能的网络链接,而不是像"哦,它在DirectX中"这样的通用.)
在一个相关的节点上,我有一个Logitech鼠标,它有一个"文档翻转"按钮,可以调用Flip 3D(然后我可以按向上/向下键来翻阅结果.)我很好奇他们是否使用官方Windows API或者如果有一些低级别的hackery正在进行中.
我想做这样的事情:
class AttachmentsController < ApplicationController
def upload
render :json => { :attachmentPartial => render :partial => 'messages/attachment', :locals => { :message=> @message} }
end
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?在JSON对象中渲染部分?谢谢
我有一个bit IsDefault专栏.表中只有一行数据可以将此位列设置为1,其他所有数据都必须设置为0.
我该如何强制执行此操作?
我试图从一个表插入另一个表使用
DECLARE @IDOffset int;
SELECT @IDOffset = MAX(ISNULL(ID,0)) FROM TargetTable
INSERT INTO TargetTable(ID, FIELD)
SELECT [Increment] + @IDOffset ,FeildValue
FROM SourceTable
WHERE [somecondition]
Run Code Online (Sandbox Code Playgroud)
TargetTable.ID不是标识列,这就是为什么我必须找到一种自己增加它的方法.
我知道我可以使用游标,或者创建一个带有标识列和FieldValue字段的表变量,填充它,然后在我的中使用它insert into...select,但这不是很有效.我尝试使用ROW_NUMBER函数来递增,但我在SourceTable中确实没有合法的ORDER BY字段可以使用,并且希望保留SourceTable的原始顺序(如果可能).
谁能提出任何建议?
如果已经回答了这个问题我道歉,但我找不到任何答案.
在我最近的一个采访问题中,我被问到如何实现Lazy Loading.方案如下:
解:
Order对象将具有IList.订单存储库将有一个返回所有订单的方法(为了更快,它不会返回每个订单的所有订单项,因此它将为null).
问题是"如何为Order对象进行延迟加载.即有一个Order对象,网站调用myOrder.LineItems.
我的第一个想法是Order对象将调用Order Service来获取lineitems,但这不是好的设计,因为Objects需要知道该服务,并且服务需要知道对象.当然,网站可以调用订单服务传递订单/订单ID来获取线条,但是我们怎么能让那个位看不见呢?所以Order对象包含它的所有数据,但有些只是在需要的时候加载?
谢谢,希望一切都有意义.
乔恩
我有一个 VBScript 程序,它在用户的临时文件夹中创建一个文件夹:
set fso = CreateObject("scripting.FileSystemObject")
temp = fso.GetSpecialFolder(2)
dropzone = temp & "\{d450c76c-2ad8-4f73-af8a-ccc5ba28036a}\"
If Not fso.FolderExists(dropzone) Then
set NewFolder = fso.CreateFolder(dropzone)
End If
set NewFolder = Nothing
Run Code Online (Sandbox Code Playgroud)
在程序结束时,我想删除该文件夹。我尝试了这个,但它给了我一个权限被拒绝的错误:
set deletefolder = fso.GetFolder(dropzone)
deletefolder.Delete(True)
set fso = Nothing
Run Code Online (Sandbox Code Playgroud) 我想创建一个模板插件,并且第一步将任意字符串转换为它的"编译"AST表示(正如scala解释器所做的那样,我猜).所以编译器插件可以例如将someString分配给"HELLO WORLD":
@StringAnnotation("""("hello world").toString.toUpperCase""")
var someString = ""
Run Code Online (Sandbox Code Playgroud)
我目前的第一个镜头插件简而言之:
见:http://paste.pocoo.org/show/326025/
a)现在,"object o{val x = 0}"返回一个AST,但"var x = 1+ 2"不是因为它不是一个有效的.scala文件.我怎样才能解决这个问题?
b)仅仅是演示是一个好的选择吗?我应该改为使用适当的阶段覆盖computeInternalPhases还是使用-Ystop:phase?
c)是否可以将外部编译器的环境绑定到内部编译器,以便例如
var x = _
(...)
@StringAnnotation("x += 3")
Run Code Online (Sandbox Code Playgroud)
会工作?
我发现以下代码[1]使用解释器和一个类似的变量:
Interpreter interpreter = new Interpreter(settings);
String[] context = { "FOO" };
interpreter.bind("context", "Array[String]", context);
interpreter
.interpret("de.tutorials.scala2.Test.main(context)");
context[0] = "BAR";
interpreter
.interpret("de.tutorials.scala2.Test.main(context)");
Run Code Online (Sandbox Code Playgroud)
谢谢
完整代码:
class AnnotationsPI(val global: Global) extends Plugin {
import global._
val name = "a_plugins::AnnotationsPI" //a_ …Run Code Online (Sandbox Code Playgroud) C++从C继承了数组,几乎无处不在.C++提供了易于使用且不易出错的抽象(std::vector<T>自C++ 98和C++ 11std::array<T, n>以来),因此对数组的需求并不像在C中那样频繁出现.但是,当您阅读遗产时代码或与用C编写的库交互,你应该牢牢掌握数组如何工作.
本FAQ分为五个部分:
如果您觉得此常见问题解答中缺少重要内容,请写下答案并将其作为附加部分链接到此处.
在下文中,"数组"表示"C数组",而不是类模板std::array.假定了C声明符语法的基本知识.请注意,面对异常,手动使用new和delete如下所示是非常危险的,但这是另一个常见问题解答的主题.
(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)