<?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>Mon, 26 Jul 2010 10:55:14 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<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>
	<item>
		<title>By: java:creating_eclipse_rcp_applications_with_scala [The Visual Editor]</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-37</link>
		<dc:creator>java:creating_eclipse_rcp_applications_with_scala [The Visual Editor]</dc:creator>
		<pubDate>Mon, 09 Feb 2009 21:20:46 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-37</guid>
		<description>[...] Wrapping JDBC (Note: referenced blog assumes fairly mature Scala knowledge.) [...]</description>
		<content:encoded><![CDATA[<p>[...] Wrapping JDBC (Note: referenced blog assumes fairly mature Scala knowledge.) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rudyard K. Prab</title>
		<link>http://szeiger.de/blog/2008/12/21/a-type-safe-database-query-dsl-for-scala/comment-page-1/#comment-36</link>
		<dc:creator>Rudyard K. Prab</dc:creator>
		<pubDate>Sat, 07 Feb 2009 00:32:21 +0000</pubDate>
		<guid isPermaLink="false">http://szeiger.de/?p=24#comment-36</guid>
		<description>This looks super. Please consider this comment another friendly request for a public repository =)</description>
		<content:encoded><![CDATA[<p>This looks super. Please consider this comment another friendly request for a public repository =)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
