<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: A Type-Safe Database Query DSL for Scala</title>
	<atom:link href="http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/feed/" rel="self" type="application/rss+xml" />
	<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/</link>
	<description>Stefan Zeiger's Software Development Weblog</description>
	<lastBuildDate>Fri, 16 Dec 2011 10:09:44 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Groovy创始人：Java面临终结 Scala将取而代之 &#124; NeXT</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-112</link>
		<dc:creator>Groovy创始人：Java面临终结 Scala将取而代之 &#124; NeXT</dc:creator>
		<pubDate>Mon, 14 Mar 2011 13:51:04 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-112</guid>
		<description>[...] &gt; 用于JDBC类型安全查询的一个Scala版LINQ，顺便再了解下DBC。 [...]</description>
		<content:encoded><![CDATA[<p>[...] &gt; 用于JDBC类型安全查询的一个Scala版LINQ，顺便再了解下DBC。 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Groovy创始人：Java面临终结 Scala将取而代之 &#124; Opeweblabs</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-104</link>
		<dc:creator>Groovy创始人：Java面临终结 Scala将取而代之 &#124; Opeweblabs</dc:creator>
		<pubDate>Fri, 20 Aug 2010 06:16:26 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-104</guid>
		<description>[...] 用于JDBC 类型安全查询的一个Scala版LINQ，顺便再了解下DBC。 [...]</description>
		<content:encoded><![CDATA[<p>[...] 用于JDBC 类型安全查询的一个Scala版LINQ，顺便再了解下DBC。 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Zeiger</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-78</link>
		<dc:creator>Stefan Zeiger</dc:creator>
		<pubDate>Tue, 10 Nov 2009 20:57:42 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-78</guid>
		<description>@ctran: Scala 2.8 is missing. ScalaQuery has matured enough to for an official 1.0 release. I&#039;m just waiting for Scala 2.8.0.</description>
		<content:encoded><![CDATA[<p>@ctran: Scala 2.8 is missing. ScalaQuery has matured enough to for an official 1.0 release. I&#8217;m just waiting for Scala 2.8.0.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ctran</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-77</link>
		<dc:creator>ctran</dc:creator>
		<pubDate>Tue, 10 Nov 2009 19:37:01 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-77</guid>
		<description>This is pretty cool.  I&#039;m surprised this didn&#039;t get more attention/momentum into a complete solution.  What&#039;s missing?</description>
		<content:encoded><![CDATA[<p>This is pretty cool.  I&#8217;m surprised this didn&#8217;t get more attention/momentum into a complete solution.  What&#8217;s missing?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Интересные ссылки №194 - rssh - блог разработчиков</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-76</link>
		<dc:creator>Интересные ссылки №194 - rssh - блог разработчиков</dc:creator>
		<pubDate>Fri, 30 Oct 2009 07:43:42 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-76</guid>
		<description>[...] В Scala LINQ может быть сделано на основе плагина компилятора: http://www.sts.tu-harburg.de/people/mi.garcia/ScalaQL/ Подобный подход применим и к JPA. http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/#more-24 [...]</description>
		<content:encoded><![CDATA[<p>[...] В Scala LINQ может быть сделано на основе плагина компилятора: <a href="http://www.sts.tu-harburg.de/people/mi.garcia/ScalaQL/" rel="nofollow">http://www.sts.tu-harburg.de/people/mi.garcia/ScalaQL/</a> Подобный подход применим и к JPA. <a href="http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/#more-24" rel="nofollow">http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/#more-24</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Howe</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-56</link>
		<dc:creator>Colin Howe</dc:creator>
		<pubDate>Mon, 14 Sep 2009 13:03:29 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-56</guid>
		<description>@Daniel @Stefan Just came across this. I think using where is clearer than if - it implies that it will be part of the query and not a condition that is applied afterwards. It also leaves open the possibility of using if instead of where when you know that the you want to do the filtering client-side instead of server-side. Just my 2p worth

@Daniel This is awesome :) I&#039;ve been thinking that Scala must have some potential for doing really neat things to tidy up database access in a nicer way than Hibernate does</description>
		<content:encoded><![CDATA[<p>@Daniel @Stefan Just came across this. I think using where is clearer than if &#8211; it implies that it will be part of the query and not a condition that is applied afterwards. It also leaves open the possibility of using if instead of where when you know that the you want to do the filtering client-side instead of server-side. Just my 2p worth</p>
<p>@Daniel This is awesome <img src='http://szeiger.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;ve been thinking that Scala must have some potential for doing really neat things to tidy up database access in a nicer way than Hibernate does</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Zeiger</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-46</link>
		<dc:creator>Stefan Zeiger</dc:creator>
		<pubDate>Mon, 15 Jun 2009 19:00:06 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-46</guid>
		<description>@Daniel: Initially I wanted to use filter() for conditions but I changed it to a separate where() method shortly before I posted this article. The filter(... =&gt; Boolean) method is needed if you want to write &quot;Join(u,o) &lt;- Users join Orders&quot; instead of &quot;uo &lt;- Users join Orders; val Join(u,o) = uo&quot; because the compiler creates a filter() call for such a pattern. If I added a filter(... =&gt; Column[Boolean]) method for conditions, an error like if(u.id != 42) instead of if(u.id isNot 42) would go unnoticed. Of course, currently I have neither of those methods. I&#039;ll have to see which one to add back when unions and more useful joins are implemented.

And yes, generating the table classes from a DB schema would certainly be nice to have but it&#039;s not one of my top priorities at the moment. Patches are welcome, if someone else wants to have a crack at it :)</description>
		<content:encoded><![CDATA[<p>@Daniel: Initially I wanted to use filter() for conditions but I changed it to a separate where() method shortly before I posted this article. The filter(&#8230; => Boolean) method is needed if you want to write &#8220;Join(u,o) < - Users join Orders" instead of "uo <- Users join Orders; val Join(u,o) = uo" because the compiler creates a filter() call for such a pattern. If I added a filter(... => Column[Boolean]) method for conditions, an error like if(u.id != 42) instead of if(u.id isNot 42) would go unnoticed. Of course, currently I have neither of those methods. I&#8217;ll have to see which one to add back when unions and more useful joins are implemented.</p>
<p>And yes, generating the table classes from a DB schema would certainly be nice to have but it&#8217;s not one of my top priorities at the moment. Patches are welcome, if someone else wants to have a crack at it <img src='http://szeiger.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Sobral</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-43</link>
		<dc:creator>Daniel Sobral</dc:creator>
		<pubDate>Tue, 09 Jun 2009 22:15:04 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-43</guid>
		<description>Another idea... if you could make a Scala code generator from DB schema, for the table objects, it would be pretty cool. One could get an existing database (or one generated by other tools) up and running that much quicker.

I imagine an interpreter session, where I have an sf session and just do:

sf withSession { generateScaffold (List(&quot;Users&quot;, &quot;Orders&quot;), &quot;myTables.scala&quot;) }
:load myTables.scala
sf withSession { ... }

BTW, I forgot to remark on it, but I loved the idea of a type-safe database framework.</description>
		<content:encoded><![CDATA[<p>Another idea&#8230; if you could make a Scala code generator from DB schema, for the table objects, it would be pretty cool. One could get an existing database (or one generated by other tools) up and running that much quicker.</p>
<p>I imagine an interpreter session, where I have an sf session and just do:</p>
<p>sf withSession { generateScaffold (List(&#8221;Users&#8221;, &#8220;Orders&#8221;), &#8220;myTables.scala&#8221;) }<br />
:load myTables.scala<br />
sf withSession { &#8230; }</p>
<p>BTW, I forgot to remark on it, but I loved the idea of a type-safe database framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Sobral</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-42</link>
		<dc:creator>Daniel Sobral</dc:creator>
		<pubDate>Tue, 09 Jun 2009 22:01:49 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-42</guid>
		<description>Why did you opt for a &quot;where&quot; method, instead of taking advantage of &quot;if&quot; though a filter method on query? If you overloaded filter to receive either a function into Boolean or a function into Column[Boolean] (if I understand how &quot;where&quot; works), then it could be used to work either as a filter over an iterator, or a query modifier.</description>
		<content:encoded><![CDATA[<p>Why did you opt for a &#8220;where&#8221; method, instead of taking advantage of &#8220;if&#8221; though a filter method on query? If you overloaded filter to receive either a function into Boolean or a function into Column[Boolean] (if I understand how &#8220;where&#8221; works), then it could be used to work either as a filter over an iterator, or a query modifier.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Zeiger</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-38</link>
		<dc:creator>Stefan Zeiger</dc:creator>
		<pubDate>Sat, 21 Feb 2009 13:32:04 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-38</guid>
		<description>Public repo now available. See next post for details.</description>
		<content:encoded><![CDATA[<p>Public repo now available. See next post for details.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

